Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程
大部分新手剛學(xué)Django開(kāi)發(fā)的時(shí)候默認(rèn)用的都是SQLite數(shù)據(jù)庫(kù),上線部署的時(shí)候,大多用的卻是Mysql。那么我們應(yīng)該如何把數(shù)據(jù)庫(kù)從SQLite遷移轉(zhuǎn)換成Mysql呢?
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫(kù),我們開(kāi)發(fā)完成之后,里面有許多數(shù)據(jù)。如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫(kù),那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫(kù)里去。
1、SQLite導(dǎo)出數(shù)據(jù)
導(dǎo)出之前,我們先確保settins.py數(shù)據(jù)庫(kù)配置選項(xiàng)那里,還是使用的是SQLite配置,如果已經(jīng)修改了,請(qǐng)先修改回來(lái):
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ù)庫(kù)配置改為MySQL的:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '你的數(shù)據(jù)庫(kù)名', '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用戶表里為空的,如果之前有遷移過(guò)數(shù)據(jù)到Mysql,有可能會(huì)出錯(cuò)。注意出錯(cuò)的時(shí)候所報(bào)的錯(cuò)誤信息。如果提示有重復(fù)主鍵,那需要先刪掉數(shù)據(jù)。這些數(shù)據(jù)是在給MySQL數(shù)據(jù)庫(kù)應(yīng)用遷移文件的時(shí)候產(chǎn)生的,一般是content_type相關(guān)的表。
進(jìn)入到MySQL,執(zhí)行如下的SQL語(yǔ)句:
use 你的數(shù)據(jù)庫(kù)名; 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ù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Django SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換Mysql數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Django數(shù)據(jù)庫(kù)(SQlite)基本入門使用教程
- django 將自帶的數(shù)據(jù)庫(kù)sqlite3改成mysql實(shí)例
- Django 創(chuàng)建后臺(tái),配置sqlite3教程
- Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)
- DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫(kù)sqlite3)
- django 連接數(shù)據(jù)庫(kù) sqlite的例子
- django使用sqlite3統(tǒng)計(jì)前臺(tái)站點(diǎn)訪問(wèn)數(shù)量示例
相關(guān)文章
python實(shí)現(xiàn)爬取千萬(wàn)淘寶商品的方法
這篇文章主要介紹了python實(shí)現(xiàn)爬取千萬(wàn)淘寶商品的方法,涉及Python頁(yè)面抓取的相關(guān)技巧,需要的朋友可以參考下2015-06-06Python爬蟲(chóng)PyQuery庫(kù)基本用法入門教程
這篇文章主要介紹了Python爬蟲(chóng)PyQuery庫(kù)基本用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了pyQuery庫(kù)字符串初始化、打開(kāi)網(wǎng)頁(yè)、css屬性、標(biāo)簽內(nèi)容等獲取、DOM基本操作等相關(guān)技巧與使用注意事項(xiàng),需要的朋友可以參考下2018-08-08python實(shí)現(xiàn)任意位置文件分割的實(shí)例
今天小編就為大家分享一篇python實(shí)現(xiàn)任意位置文件分割的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python進(jìn)程池的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了python進(jìn)程池的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python3.4 splinter(模擬填寫(xiě)表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫(xiě)表單)使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10