DJango配置mysql資料庫以及資料庫遷移

2022-01-12 16:28:12 字數 1685 閱讀 6783

import pymysql           # 配置mysql

pymysql.install_as_mysqldb()

databases =

}

python3不支援mysqldb,可用pymysql代替。

1.首先,在python虛擬環境下安裝pymysql:pip install pymysql。

2.然後,在專案資料夾下的_init_.py(實際上也可以新增到settings.py中,如上。)新增如下**即可。

import pymysql

pymysql.install_as_mysqldb()

3.再者,在terminal中執行資料庫遷移命令:

python manage.py makemigrations

python manage.py migrate

之前我們預設使用的是sqlite資料庫,我們開發完成之後,裡面有許多資料。如果我們想轉換成mysql資料庫,那我們先得把舊資料從sqlite匯出,然後再匯入到新的mysql資料庫裡去。

匯出之前,我們先確保settins.py資料庫配置選項那裡,還是使用的是sqlite配置,如果已經修改了,請先修改回來:

databases = 

}

然後在cmd命令列裡輸入:

python manage.py dumpdata > data.json
這樣就將資料匯出到django專案根目錄下的data.json檔案。

同樣,先將django的資料庫配置改為mysql的:

databases = 

}

然後在cmd命令列裡輸入:

python manage.py loaddata data.json
注意:

確保mysql使用者表裡為空的,如果之前有遷移過資料到mysql,有可能會出錯。注意出錯的時候所報的錯誤資訊。如果提示有重複主鍵,那需要先刪掉資料。這些資料是在給mysql資料庫應用遷移檔案的時候產生的,一般是content_type相關的表。

進入到mysql,執行如下的sql語句:

use 你的資料庫名;

delete from auth_permission;

delete from django_content_type;

刪除資料之後,再執行一次匯入命令即可。基本上,匯入不了資料都是mysql存在資料導致的。

另外,有可能所安裝的mysql沒有載入時區表。這個可能會導致filter對日期的查詢有問題。django官方文件也指出這個問題。mysql官網也有對應處理方法:載入時區表

mysql -u root -p mysql < timezone_posix.sql
操作很簡單:

python manage.py dumpdata > backup.json
到postgresql對應的配置中:

python manage.py loaddata backup.json
python3 manage.py inspectdb

django配置mysql資料庫

最近在學習django,學到第五章模型時,需要連線資料庫,然後,在這裡分享一下方法。起初是不知道怎樣配置mysql資料庫,但是還好,django的官網上面有相關的配置方法,下面就直接給分享一下。這是settings檔案裡面的基礎配置,使用的是sqlite,那我們需要連線其他資料庫呢?plain vi...

Django 配置MySQL資料庫

django 配置mysql資料庫 在settings.py中配置databases 資料庫結構遷移 python3不支援mysqldb,可用pymysql代替。1.首先,在python虛擬環境下安裝pymysql pip install pymysql。2.然後,在專案資料夾下的 init py新...

Django 配置mysql 資料庫

我本地已經安裝了mysql5.7 資料庫也已經建立好。但當我在專案配置檔案settings.py修改完資料庫連線後發現並不能使用 databases 控制台報錯 django.core.exceptions.improperlyconfigured error loading mysqldb mod...