部署时django CMS错误cms_urlconfrevision

时间:2019-05-23 21:28:08

标签: django heroku django-cms

我正在尝试将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迁移。似乎没有任何作用。

我正在使用

  • django-cms == 3.6.0
  • Django == 2.1.8

3 个答案:

答案 0 :(得分:3)

  

我知道这是一个丢失的数据库表,但是我不知道如何解决它。我尝试删除所有迁移文件和.pyc文件,然后再次迁移,我删除了数据库,尝试使用--fake迁移。似乎没有任何作用。

迁移文件仅定义存在哪些迁移。他们不会自行修改您的数据库。这里有两个步骤:

  1. 使用makemigrations创建迁移。这只能在您的开发计算机上完成。在部署代码时,您不应对模型进行任何更改,以免产生新的迁移。

  2. 使用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',

为我工作