溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django數據怎么從sqlite遷移數據到MySQL

發布時間:2021-12-08 16:19:45 來源:億速云 閱讀:211 作者:柒染 欄目:互聯網科技

Django數據怎么從sqlite遷移數據到MySQL,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

昨天快速搭建了一套自己的知識庫。感覺一下子有了很多的事情要做,至少得讓自己用得舒服些。

沒想到有了這個小工具之后,我發現我之前過得真是刀耕火種的信息收集。為什么這么說,因為我們每天都會讀大量的文章,如果你決定收藏了,在微信里面就默默的點擊“收藏”,然后不知不覺,已經收藏了成百上千篇,微信收藏的文章有個缺點就是我們在手機端很難去管理,通過關鍵字或者其他標簽可以搜索出來,但是屏幕里只能顯示出來差不多3-4條信息。如果想根據時間去排序之類的基本上無法實現,我也一直納悶目前沒有見到一個很給力的工具來管理收藏夾。

這僅僅是手機端的,如果是電腦端,那就更多了,我們的瀏覽器有收藏夾,但是本身沒有排序功能,如果要做更多的篩選,基本靠眼里。

而且比較糾結的就是,有時候一打開一下子翻騰出所有的文章,頓時就會讓人有些眩暈,而且作為書簽,本身沒有層級感。

哪怕做了細致的分類,但是一個目錄下還是難免會生成大量的鏈接,完全無法排序。

Django數據怎么從sqlite遷移數據到MySQL

所以我就退而求其次,把一些鏈接寫道每天的工作記錄里面,但這樣明顯更糟糕,因為這些信息我不去找,壓根找不到。所以想想真是悲涼,我遺失了多少重要的信息。

然后我痛下決心,先改善自我生活,比如下面的url管理方式,我可以指定排序的規則。做多個類別的拆分,而且更重要的基于web,如果用Django的admin模板,完全不用寫前端頁面了。

Django數據怎么從sqlite遷移數據到MySQL

所以我風風火火用了windows里的配置,為了簡化,用了sqlite存儲數據,很快就配置了30多條的url信息。

大類別分了這些,所以可以看出來我想做的不是一個簡單的url收集,而想讓它變得更有意思。不局限于技術方向。

Django數據怎么從sqlite遷移數據到MySQL

說了這么多,這么做馬上就碰到了一個潛在的問題,數據庫是sqlite,而我們實際使用肯定是MySQL,從使用和數據安全性上來說,我們更傾向于用MySQL,但是sqlite和MySQL本身不是完全兼容的,怎么同步這些數據。

管理sqlite很簡單,數據都存放在一個看起來很普通的文件里面,我們只需要解析這一個文件即可。它更適合于嵌入式,本身是不支持事務的。

怎么把sqlite的數據同步到MySQL就是擺在我面前的一個問題。

我做了快速的嘗試,用了如下的方式,僅供參考。

  1. 把sqlite的數據文件拷貝到linux里面,因為我正式的服務都是在linux下,同樣的應用我使用了MySQL,這個數據文件有個好處就是從windows拷貝到linux,還是能夠正常解析的,登錄使用命令sqlite3即可。

  2. 查看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個表即可。

  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,'人文歷史',' ')

  4. 如果要導出csv就加-csv選項即可,或者直接生成.sql文件。

  5. 如果是sql文件需要去掉腳本里的“”,要不解析會出錯。

  6. 把SQL部署到MySQL,就行程了一個閉環,我們就可以按照自己的想法來補充完善了。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女