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

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

 更新時(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)先修改回來:

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用戶表里為空的,如果之前有遷移過數(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)論

北安市| 台州市| 灵寿县| 和平县| 石楼县| 晋城| 通辽市| 宝清县| 富锦市| 石楼县| 寿阳县| 石屏县| 左云县| 盐津县| 武汉市| 齐齐哈尔市| 黄浦区| 陕西省| 通河县| 湾仔区| 台山市| 克什克腾旗| 枣阳市| 志丹县| 松江区| 双桥区| 五大连池市| 叶城县| 乌兰察布市| 博爱县| 聂拉木县| 九江市| 库车县| 庆云县| 崇阳县| 邻水| 怀仁县| 正镶白旗| 合川市| 那曲县| 奇台县|