在现有架构上执行迁移时出现Django迁移错误

时间:2018-05-22 14:07:37

标签: mysql python-2.7 django-cms django-1.11

我正在将django应用程序从1.5升级到1.11。我也在升级第三方软件包。将django-cms 2.4升级到3.5时,我遇到了一些迁移问题。我有一个已经存在的mysql数据库。升级后django-cms

1)我从__init__.py迁移文件夹中删除了django-cms以外的所有迁移。

2)使用django_migration从我的数据库中删除delete from django_migrations;数据中的数据。

3)然后我执行了python manage.py makemigration cms然后python manage.py migrate cms --fake

但是在运行应用程序时,我正在获取表cms_urlconfrevision does not exist。 因为某些新表正在新版django-cms中创建。根据我的理解,在执行--fake migration时不会创建新表。所以我执行python manage.py migrate来创建新表,但它显示错误某些表已经存在。请帮我摆脱这个错误。

参考:Django 1.8: Create initial migrations for existing schema

2 个答案:

答案 0 :(得分:0)

您可能必须在正在使用的数据库中手动删除/创建表。

答案 1 :(得分:0)

根据您引用的链接,请执行相反的操作:

  

3.重置“内置”应用的迁移: python manage.py migrate --fake

     
      
  1. 对于每个应用运行: python manage.py makemigrations 。照顾依赖关系(带有ForeignKey的模型应该在它们之后运行)   父模型)。
  2.   
python manage.py migrate --fake
python manage.py makemigration cms
python manage.py migrate --fake-initial