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
- 高速遷移MySQL資料到分散式時序資料庫DolphinDBMySql分散式資料庫
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 遷移sqlserver資料到MongoDbSQLServerMongoDB
- django資料庫遷移-15Django資料庫
- Mysql資料遷移方法MySql
- 金倉資料庫資料遷移實戰:從MySQL到KES的順利遷移資料庫MySql
- linux mysql資料庫遷移LinuxMySql資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 【Redis】redis遷移資料到redis-clusterRedis
- MySQL資料遷移那些事兒MySql
- 從 SQL Server 到 MySQL (一):異構資料庫遷移ServerMySql資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- 從雲資料遷移服務看MySQL大表抽取模式MySql模式
- Mysql百萬級資料遷移,怎麼遷移?實戰過沒?MySql
- mysql 備份與遷移 資料同步方法MySql
- Kafka資料遷移Kafka
- Harbor資料遷移
- gitlab資料遷移Gitlab
- 資料庫遷移資料庫
- 達夢遷移工具之MySQL資料庫遷移到達夢MySql資料庫
- Mysql百萬級資料遷移實戰筆記MySql筆記
- 1.0 ORACLE到MYSQL資料遷移方式選型OracleMySql
- Centos MySQL資料庫遷移詳細步驟CentOSMySql資料庫
- 異構資料庫資料遷移 oracle to mysql之oracle sqlloader和mysql load data資料庫OracleMySql
- 資料遷移(1)——通過資料泵表結構批量遷移
- 自動化遷移七牛雲的資料到阿里雲OSS阿里
- 自動化遷移七牛雲的資料到阿里雲 OSS阿里
- 遷移ORACLE資料到MogDB/openGauss時的字符集問題Oracle
- 【Golang+mysql】記一次mysql資料庫遷移(一)GolangMySql資料庫
- 【Hive】hive資料遷移Hive
- 【Redis】 redis資料遷移Redis
- redis資料庫遷移Redis資料庫
- congregate遷移gitlab資料Gitlab
- 系統資料遷移
- 資料庫遷移 :理解資料庫
- laravel資料庫遷移Laravel資料庫
- Fastdfs資料遷移方案AST
- Django 遷徙資料庫 失敗Django資料庫