最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程

 更新時(shí)間:2023年05月15日 11:23:38   作者:木子歡兒  
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫(kù),我們開發(fā)完成之后,里面有許多數(shù)據(jù),如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫(kù),那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫(kù)里去,這篇文章主要介紹了Django如何把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下

大部分新手剛學(xué)Django開發(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ù),我們開發(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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

阿鲁科尔沁旗| 延川县| 广水市| 陆川县| 大城县| 贵溪市| 秦安县| 新郑市| 贺州市| 张北县| 宽城| 从化市| 汨罗市| 浦北县| 钦州市| 新宁县| 信丰县| 峡江县| 阳谷县| 涟水县| 绥中县| 徐汇区| 繁峙县| 葫芦岛市| 兰溪市| 丽水市| 城步| 册亨县| 汉源县| 山丹县| 霞浦县| 郧西县| 阜城县| 高邑县| 牙克石市| 连山| 茂名市| 新绛县| 社旗县| 大埔区| 海宁市|