如何在 pythonanywhere 上将 Django 数据库更改为 MySQL?
How can I change a Django db to MySQL on pythonanywhere?
我认为这会很简单,因为 MySQL tutorial by pythonanywhere,但我仍然无法从 sqlite3 切换。我是 SQL 数据库的初学者,我一直在查看其他 Whosebug 问题,但我不确定从这里还能去哪里。这是我到目前为止所做的。
settings.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 migrate
我仍然收到
的错误
(1146, "Table '3DPrince$ubodb.django_site' doesn't exist")
我不确定从这里还能做什么,我不确定如何从 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
中)并且对与真实数据库的交互没有任何作用。
如果您不修改您的项目,您实际上不需要重新创建迁移文件。
以上步骤帮助我调试了我的错误。事实证明,我的后端仍在识别我以前使用过的设置文件,而我的前端正在寻找新的 MYSQL 我切换到生产环境的设置文件。我所做的只是从开发 settings.py 文件中注释掉 DATABASES 并再次迁移,它成功了。
我认为这会很简单,因为 MySQL tutorial by pythonanywhere,但我仍然无法从 sqlite3 切换。我是 SQL 数据库的初学者,我一直在查看其他 Whosebug 问题,但我不确定从这里还能去哪里。这是我到目前为止所做的。
settings.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 migrate
我仍然收到
的错误
(1146, "Table '3DPrince$ubodb.django_site' doesn't exist")
我不确定从这里还能做什么,我不确定如何从 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
中)并且对与真实数据库的交互没有任何作用。
如果您不修改您的项目,您实际上不需要重新创建迁移文件。
以上步骤帮助我调试了我的错误。事实证明,我的后端仍在识别我以前使用过的设置文件,而我的前端正在寻找新的 MYSQL 我切换到生产环境的设置文件。我所做的只是从开发 settings.py 文件中注释掉 DATABASES 并再次迁移,它成功了。