Django把SQLite數(shù)據(jù)庫轉換為Mysql數(shù)據(jù)庫的過程
大部分新手剛學Django開發(fā)的時候默認用的都是SQLite數(shù)據(jù)庫,上線部署的時候,大多用的卻是Mysql。那么我們應該如何把數(shù)據(jù)庫從SQLite遷移轉換成Mysql呢?
之前我們默認使用的是SQLite數(shù)據(jù)庫,我們開發(fā)完成之后,里面有許多數(shù)據(jù)。如果我們想轉換成Mysql數(shù)據(jù)庫,那我們先得把舊數(shù)據(jù)從SQLite導出,然后再導入到新的Mysql數(shù)據(jù)庫里去。
1、SQLite導出數(shù)據(jù)
導出之前,我們先確保settins.py數(shù)據(jù)庫配置選項那里,還是使用的是SQLite配置,如果已經修改了,請先修改回來:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}然后在CMD命令行里輸入:
python manage.py dumpdata > data.json
這樣就將數(shù)據(jù)導出到Django項目根目錄下的data.json文件。
2、MySQL導入數(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ù)表對應的 migrations 文件夾,保留 __pycache__ 和 __init__.py 文件,其他的都刪掉。

然后先執(zhí)行下面這行命令:
python manage.py makemigrations

再執(zhí)行下面這行命令:
python manage.py migrate

然后在CMD命令行里輸入:
python manage.py loaddata data.json
再運行項目,發(fā)現(xiàn)成功運行

注意:
確保Mysql用戶表里為空的,如果之前有遷移過數(shù)據(jù)到Mysql,有可能會出錯。注意出錯的時候所報的錯誤信息。如果提示有重復主鍵,那需要先刪掉數(shù)據(jù)。這些數(shù)據(jù)是在給MySQL數(shù)據(jù)庫應用遷移文件的時候產生的,一般是content_type相關的表。
進入到MySQL,執(zhí)行如下的SQL語句:
use 你的數(shù)據(jù)庫名; delete from auth_permission; delete from django_content_type;
刪除數(shù)據(jù)之后,再執(zhí)行一次導入命令即可?;旧?,導入不了數(shù)據(jù)都是MySQL存在數(shù)據(jù)導致的。
到此這篇關于Django如何把SQLite數(shù)據(jù)庫轉換為Mysql數(shù)據(jù)庫的文章就介紹到這了,更多相關Django SQLite數(shù)據(jù)庫轉換Mysql數(shù)據(jù)庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python3.4 splinter(模擬填寫表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫表單)使用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

