Django資料從sqlite遷移資料到MySQL
昨天快速搭建了一套自己的知識庫
感覺一下子有了很多的事情要做,至少得讓自己用得舒服些。
沒想到有了這個小工具之後,我發現我之前過得真是刀耕火種的資訊收集。為什麼這麼說,因為我們每天都會讀大量的文章,如果你決定收藏了,在微信裡面就默默的點選“收藏”,然後不知不覺,已經收藏了成百上千篇,微信收藏的文章有個缺點就是我們在手機端很難去管理,透過關鍵字或者其他標籤可以搜尋出來,但是螢幕裡只能顯示出來差不多3-4條資訊。如果想根據時間去排序之類的基本上無法實現,我也一直納悶目前沒有見到一個很給力的工具來管理收藏夾。
這僅僅是手機端的,如果是電腦端,那就更多了,我們的瀏覽器有收藏夾,但是本身沒有排序功能,如果要做更多的篩選,基本靠眼裡。
而且比較糾結的就是,有時候一開啟一下子翻騰出所有的文章,頓時就會讓人有些眩暈,而且作為書籤,本身沒有層級感。
哪怕做了細緻的分類,但是一個目錄下還是難免會生成大量的連結,完全無法排序。
所以我就退而求其次,把一些連結寫道每天的工作記錄裡面,但這樣明顯更糟糕,因為這些資訊我不去找,壓根找不到。所以想想真是悲涼,我遺失了多少重要的資訊。
然後我痛下決心,先改善自我生活,比如下面的url管理方式,我可以指定排序的規則。做多個類別的拆分,而且更重要的基於web,如果用Django的admin模板,完全不用寫前端頁面了。
所以我風風火火用了windows裡的配置,為了簡化,用了sqlite儲存資料,很快就配置了30多條的url資訊。
大類別分了這些,所以可以看出來我想做的不是一個簡單的url收集,而想讓它變得更有意思。不侷限於技術方向。
說了這麼多,這麼做馬上就碰到了一個潛在的問題,資料庫是sqlite,而我們實際使用肯定是MySQL,從使用和資料安全性上來說,我們更傾向於用MySQL,但是sqlite和MySQL本身不是完全相容的,怎麼同步這些資料。
管理sqlite很簡單,資料都存放在一個看起來很普通的檔案裡面,我們只需要解析這一個檔案即可。它更適合於嵌入式,本身是不支援事務的。
怎麼把sqlite的資料同步到MySQL就是擺在我面前的一個問題。
我做了快速的嘗試,用瞭如下的方式,僅供參考。
-
把sqlite的資料檔案複製到linux裡面,因為我正式的服務都是在linux下,同樣的應用我使用了MySQL,這個資料檔案有個好處就是從windows複製到linux,還是能夠正常解析的,登入使用命令sqlite3即可。
-
檢視sqlite的資料庫情況如下,語法和命令略有差異。
sqlite> .databases
seq name file
--- --------------- -----------------------
0 main /root/test/db.sqlite3
目前存在的表有這些。
sqlite> .tables
auth_group django_content_type
auth_group_permissions django_migrations
auth_permission django_session
auth_user km_child_category
auth_user_groups km_parent_category
auth_user_user_permissions km_url_info
django_admin_log
這麼多的表怎麼同步呢,其實是做一個選擇,我們建立的models.py裡面的資訊是需要的,也就意味著我們只需要同步其中的3個表即可。
-
我們使用.dump選項即可輕鬆匯出資料。
sqlite3 db.sqlite3 .dump
得到的SQL類似下面的形式,大部分的語法還是相容的。
CREATE TABLE "km_parent_category" ("category_pid" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "category_name" varchar(200) NOT NULL, "category_memo" varchar(200) NOT NULL);
INSERT INTO "km_parent_category" VALUES(1,'Python開發技術','test1');
INSERT INTO "km_parent_category" VALUES(2,'MySQL','test2');
INSERT INTO "km_parent_category" VALUES(3,'個人公眾號文章','jianrong-notes');
INSERT INTO "km_parent_category" VALUES(4,'人文歷史',' ')
-
如果要匯出csv就加-csv選項即可,或者直接生成.sql檔案。
-
如果是sql檔案需要去掉指令碼里的“”,要不解析會出錯。
-
把SQL部署到MySQL,就行程了一個閉環,我們就可以按照自己的想法來補充完善了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2148802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqldump從mysql遷移資料到OceanBaseMySql
- 從Sql Server遷移資料到OracleSQLServerOracle
- Django應用資料庫從MySQL到PostgreSql的遷移Django資料庫MySql
- 高速遷移MySQL資料到分散式時序資料庫DolphinDBMySql分散式資料庫
- 遷移sqlserver資料到MongoDbSQLServerMongoDB
- django資料庫遷移-15Django資料庫
- 資料從Oracle向Mysql資料遷移例項OracleMySql
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 資料到hadoop的遷移Hadoop
- [Sqlite] 資料遷移備份--從低版本到高版本SQLite
- Mysql資料遷移方法MySql
- 遷移資料到Oracle的方法思考Oracle
- 從MySQL到Redis提升資料遷移的效率MySqlRedis
- 資料倉儲中從mysql導資料到oracleMySqlOracle
- 【Redis】redis遷移資料到redis-clusterRedis
- 單機遷移資料到RAC完整案例
- 遷移MySQL 5.7資料庫MySql資料庫
- MySQL 資料遷移Oracle工作MySqlOracle
- mysql資料庫遷移 mysqldumpMySql資料庫
- 從 SQL Server 到 MySQL (一):異構資料庫遷移ServerMySql資料庫
- MySQL資料遷移那些事兒MySql
- linux mysql資料庫遷移LinuxMySql資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- 從雲資料遷移服務看MySQL大表抽取模式MySql模式
- MySQL兩千萬資料優化&遷移MySql優化
- MySql資料庫遷移圖文展示MySql資料庫
- MySQL與SQLite的區別及遷移MySqlSQLite
- 遷移資料.
- Mysql百萬級資料遷移,怎麼遷移?實戰過沒?MySql
- oracle 資料遷移案例 從 8.1.7.4到9.2.0.8Oracle
- 【遷移】使用rman遷移資料庫資料庫
- mysql 備份與遷移 資料同步方法MySql
- sqlldr 完成mysql到oracle的資料遷移MySqlOracle
- 使用goldengate從mysql同步資料到oracleGoMySqlOracle
- 【資料遷移】使用傳輸表空間遷移資料
- Kafka資料遷移Kafka
- 資料庫遷移資料庫
- redis資料遷移Redis