Django把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫的過程
大部分新手剛學(xué)Django開發(fā)的時(shí)候默認(rèn)用的都是SQLite數(shù)據(jù)庫,上線部署的時(shí)候,大多用的卻是Mysql。那么我們應(yīng)該如何把數(shù)據(jù)庫從SQLite遷移轉(zhuǎn)換成Mysql呢?
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫,我們開發(fā)完成之后,里面有許多數(shù)據(jù)。如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫,那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫里去。
1、SQLite導(dǎo)出數(shù)據(jù)
導(dǎo)出之前,我們先確保settins.py數(shù)據(jù)庫配置選項(xiàng)那里,還是使用的是SQLite配置,如果已經(jīng)修改了,請(qǐng)先修改回來:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
然后在CMD命令行里輸入:
python manage.py dumpdata > data.json
這樣就將數(shù)據(jù)導(dǎo)出到Django項(xiàng)目根目錄下的data.json文件。
2、MySQL導(dǎo)入數(shù)據(jù)
同樣,先將Django的數(shù)據(jù)庫配置改為MySQL的:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '你的數(shù)據(jù)庫名', 'USER': '你的MySQL用戶名', 'PASSWORD': '你的密碼', 'HOST': 'localhost', 'PORT': '3306', } }
先找到數(shù)據(jù)表對(duì)應(yīng)的 migrations 文件夾,保留 __pycache__
和 __init__.py
文件,其他的都刪掉。
然后先執(zhí)行下面這行命令:
python manage.py makemigrations
再執(zhí)行下面這行命令:
python manage.py migrate
然后在CMD命令行里輸入:
python manage.py loaddata data.json
再運(yùn)行項(xiàng)目,發(fā)現(xiàn)成功運(yùn)行
注意:
確保Mysql用戶表里為空的,如果之前有遷移過數(shù)據(jù)到Mysql,有可能會(huì)出錯(cuò)。注意出錯(cuò)的時(shí)候所報(bào)的錯(cuò)誤信息。如果提示有重復(fù)主鍵,那需要先刪掉數(shù)據(jù)。這些數(shù)據(jù)是在給MySQL數(shù)據(jù)庫應(yīng)用遷移文件的時(shí)候產(chǎn)生的,一般是content_type相關(guān)的表。
進(jìn)入到MySQL,執(zhí)行如下的SQL語句:
use 你的數(shù)據(jù)庫名; delete from auth_permission; delete from django_content_type;
刪除數(shù)據(jù)之后,再執(zhí)行一次導(dǎo)入命令即可?;旧?,導(dǎo)入不了數(shù)據(jù)都是MySQL存在數(shù)據(jù)導(dǎo)致的。
到此這篇關(guān)于Django如何把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Django SQLite數(shù)據(jù)庫轉(zhuǎn)換Mysql數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)爬取千萬淘寶商品的方法
這篇文章主要介紹了python實(shí)現(xiàn)爬取千萬淘寶商品的方法,涉及Python頁面抓取的相關(guān)技巧,需要的朋友可以參考下2015-06-06python實(shí)現(xiàn)任意位置文件分割的實(shí)例
今天小編就為大家分享一篇python實(shí)現(xiàn)任意位置文件分割的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12python進(jìn)程池的簡單實(shí)現(xiàn)
本文主要介紹了python進(jìn)程池的簡單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python3.4 splinter(模擬填寫表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫表單)使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10