我正在将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
答案 0 :(得分:0)
您可能必须在正在使用的数据库中手动删除/创建表。
答案 1 :(得分:0)
根据您引用的链接,请执行相反的操作:
3.重置“内置”应用的迁移: python manage.py migrate --fake
- 对于每个应用运行: python manage.py makemigrations 。照顾依赖关系(带有ForeignKey的模型应该在它们之后运行) 父模型)。
醇>
python manage.py migrate --fake
python manage.py makemigration cms
python manage.py migrate --fake-initial