您好,登錄后才能下訂單哦!
小編給大家分享一下Django如何將默認的SQLite更換為MySQL,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、注釋默認的SQLite3配置:
blogproject/settings.py ''' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } '''
2、添加MySQL配置(配置你自己的mysql庫前提是你已經有能夠供自己使用的MySQL庫了)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #固定配置 'HOST': '127.0.0.1',#mysql地址 'PORT': '3306',#端口號 'NAME': 'guest',#庫名(組名) 'USER': 'root',#用戶 'PASSWORD': '123456',#密碼 'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", }, } }
遷移數據庫
為了讓 Django 完成翻譯,使用我們在modele.py已經創建好的這些數據庫表,我們請出我的工程管理助手 manage.py。激活虛擬環境,切換到 manage.py 文件所在的目錄下,分別運行 python manage.py makemigrations和 python manage.py migrate命令:
PS D:\xuexi\python\\django2\blogproject> python manage.py makemigrations Migrations for 'blog': blog\migrations\0001_initial.py: - Create model Category - Create model Post - Create model Tag - Add field tags to post PS D:\xuexi\python\web接口開發\django2\blogproject> python manage.py migrate Operations to perform: Apply all migrations: admin, auth, blog, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying blog.0001_initial... OK Applying sessions.0001_initial... OK
僅供參考你的數量可能沒有這么多
當我們執行了 python manage.py makemigrations后,Django 在 blog 應用的 migrations\ 目錄下生成了一個 0001_initial.py文件,這個文件是 Django 用來記錄我們對模型做了哪些修改的文件。目前來說,我們在 models.py 文件里創建了 3 個模型類,Django 把這些變化記錄在了 0001_initial.py里。
不過此時還只是告訴了 Django 我們做了哪些改變,為了讓 Django 真正地為我們創建數據庫表,接下來又執行了 python manage.py migrate命令。Django 通過檢測應用中 migrations\ 目錄下的文件,得知我們對數據庫做了哪些操作,然后它把這些操作翻譯成數據庫操作語言,從而把這些操作作用于真正的數據庫。
如果你使用的是mysql會生成0001_auto_20180507_2145.py
如果你需要在mysql和SQLite3之間切換你需要重新執行python manage.py makemigrations和 python manage.py migrate命令,而且你原來庫中的數據不會轉移(執行完上面兩個命令只會在新的數據庫中創建modele.py中的表)。
看完了這篇文章,相信你對“Django如何將默認的SQLite更換為MySQL”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。