【问题标题】:django CMS error cms_urlconfrevision on deployment部署时的 django CMS 错误 cms_urlconfrevision
【发布时间】:2019-10-10 11:53:57
【问题描述】:

我正在尝试将 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

【问题讨论】:

  • 您是否尝试过使用 heroku run python manage.py migrate 简单地运行迁移?
  • 伙计,我已经坚持了 2 天,我多次阅读 heroku 部署文档,但从未见过这样的命令。解决了我的问题,谢谢
  • 好的,那我补充一个正确的答案。

标签: django heroku django-cms


【解决方案1】:

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

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

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

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

    在 Heroku 上,您可以使用

    heroku run python manage.py migrate
    

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

【讨论】:

    【解决方案2】:

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

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

    改变

    NAME: 'project.db' 
    

    NAME:'project_name/project.bd'
    

    【讨论】:

      【解决方案3】:

      在文件setting.py中更改

        'NAME': 'project.db',
      

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

      为我工作

      【讨论】:

        猜你喜欢
        • 2012-03-04
        • 2013-07-05
        • 2020-09-22
        • 2015-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 2015-03-03
        相关资源
        最近更新 更多