我认为这会很简单,因为 MySQL tutorial by pythonanywhere ,但我仍然无法从 sqlite3 切换。我是 SQL 数据库的初学者,我一直在查看其他 stackoverflow 问题,但我不知道从这里开始还能去哪里。这是我到目前为止所做的。
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '3DPrince$ubodb',
'USER': '3DPrince',
'PASSWORD': 'secretpassword',
'HOST': '3DPrince.mysql.pythonanywhere-services.com',
},
}
我还运行了以下命令来尝试同步数据库。
manage.py makemigrations
manage.py 迁移
我仍然收到
错误
(1146,“表'3DPrince$ubodb.django_site'不存在”)
我不知道从这里还能做什么,也不知道如何从 mysql bash 控制台进行任何类型的检查。
谁能指出我做错了什么?或者也许一些有用的 mysql bash 命令来检查连接或手动重新创建数据库?
最佳答案
迁移过程中似乎出现了问题。我建议您执行以下步骤来重新创建数据库。
备份数据库中的数据!!!
连接到远程数据库:
$ mysql -h 3DPrince.mysql.pythonanywhere-services.com -u 3DPrince -p
删除当前数据库并重新创建:
drop database `3DPrince$ubodb`; create database `3DPrince$ubodb`;
本地(在另一个终端的选项卡中)迁移您的 django 项目:
$ python manage.py migrate
检查(在连接到删除数据库的选项卡中)是否已正确创建所有表:
use `3DPrince$ubodb`; show tables;
如果出现问题,您会看到警告或错误。
而且您也不需要一直执行python manage.py makemigrations
,因为此命令仅创建迁移文件。
(它们存储在yourproj/yourapp/migrations
中)并且对与真实数据库的交互没有任何作用。
如果您不修改项目,则实际上不需要重新创建迁移文件。
关于python - 如何在 pythonanywhere 上将 Django 数据库更改为 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234875/