部署时出现 django CMS 错误 cms_urlconfrevision

django CMS error cms_urlconfrevision on deployment

我正在尝试将 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 上运行良好。

我知道它缺少一个数据库 table,但我不知道如何修复它。我尝试删除所有迁移文件和 .pyc 文件并再次迁移,我删除了数据库,我尝试使用 --fake 进行迁移。似乎没有任何效果。

我正在使用

I understand it's a database table missing but I have no idea how to fix it. I tried removing all the migration files and .pyc files and migrated again, I removed the database, I tried migration with --fake. Nothing seems to work.

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

  1. 正在使用 makemigrations 创建迁移。这应该只在您的开发机器上完成。在部署您的代码时,您不应该进行任何会导致生成新迁移的模型更改。

  2. 正在使用 migrate 将迁移应用到您的数据库。这必须在开发(更新本地数据库)和生产(更新生产数据库)中完成。

    在 Heroku 上,您 运行 您的迁移

    heroku run python manage.py migrate
    

    我认为这是你缺少的步骤。

您好,也许您找到了解决方案,但如果有人遇到了该问题,那是由于数据库设置所致。

在project_name/site_name/settings.py和数据库设置部分

改变

NAME: 'project.db' 

NAME:'project_name/project.bd'

在文件中setting.py更改

  'NAME': 'project.db',

'NAME': BASE_DIR / 'project.db',

对我有用