我正在尝试将django CMS应用程序部署到PythonAnywhere或Heroku,但我在Heroku上始终收到此错误:
ProgrammingError at /
relation "cms_urlconfrevision" does not exist
LINE 1: ...sion"."id", "cms_urlconfrevision"."revision" FROM "cms_urlco...
以及PythonAnywhere上的此错误:
OperationalError at /
no such table: cms_urlconfrevision
该应用在localhost
上正常运行。
我知道这是一个丢失的数据库表,但是我不知道如何解决它。我尝试删除所有迁移文件和.pyc
文件,然后再次迁移,我删除了数据库,尝试使用--fake
迁移。似乎没有任何作用。
我正在使用
答案 0 :(得分:3)
我知道这是一个丢失的数据库表,但是我不知道如何解决它。我尝试删除所有迁移文件和
.pyc
文件,然后再次迁移,我删除了数据库,尝试使用--fake
迁移。似乎没有任何作用。
迁移文件仅定义存在哪些迁移。他们不会自行修改您的数据库。这里有两个步骤:
使用makemigrations
创建迁移。这只能在您的开发计算机上完成。在部署代码时,您不应对模型进行任何更改,以免产生新的迁移。
使用migrate
将迁移应用于数据库。这必须在开发中(以更新本地数据库)和生产中(以更新生产数据库)完成。
在Heroku上,您可以使用以下方式进行迁移
heroku run python manage.py migrate
我认为这是您所缺少的步骤。
答案 1 :(得分:0)
您好,也许您找到了解决方案,但是如果有人遇到该问题,则归因于数据库设置。
在project_name / site_name / settings.py和“数据库设置”部分
更改
NAME: 'project.db'
到
NAME:'project_name/project.bd'
答案 2 :(得分:0)
在文件setting.py中更改
'NAME': 'project.db',
到
'NAME': BASE_DIR / 'project.db',
为我工作