use*_*018 72 django django-migrations
我启动了一个使用迁移系统的django 1.8项目.
在某种程度上事情变得混乱,所以我从数据库中删除了迁移文件夹和表,现在我正在尝试重建它们,但没有成功.
我有三个应用程序(3个models.py文件),模型完全反映了表格!
到目前为止我发现的最佳方法是:
migrations文件夹.完成!django_migrations表中删除所有内容.完成!python manage.py makemigrations --empty <app>为每个应用运行.完成!python manage.py migrate --fake.完成!(虽然只有在每次makemigrations命令后运行它才有效.现在我添加一个新字段,运行该makemigrations命令,我收到以下错误:
django.db.utils.OperationalError: (1054, "Unknown column 'accounts_plan.max_item_size' in 'field list'")
我一直在烧这个东西.我怎样才能初始化迁移,这样我每次都可以继续工作而不会发生迁移中断?
为什么这么复杂?为什么没有简单的单行:initiate_migrations_from_schema?
编辑:
现在事情变得更加糟糕.我截断了django_migrations表并删除了所有migrations文件夹.
现在我尝试运行python manage.py migrate --fake-initial(我在DEV文档中找到的东西),这样就设置了所有Django的"内部"应用程序(auth,session等),我得到了:
(1054, "Unknown column 'name' in 'django_content_type'").
现在,这个"专栏"不是一个真正的专栏.它是@propertyDjango contenttypes应用程序中定义的.这里发生了什么?为什么将该name属性识别为真正的列?
use*_*018 165
最后让它工作,虽然我不知道为什么,我希望它将来会有用.
经过多次试验并通过Django的开发站点(链接).
以下是步骤(对于遇到此问题的人):
django_migrations桌子:delete from django_migrations;migrations文件夹:rm -rf <app>/migrations/python manage.py migrate --fakepython manage.py makemigrations <app>.处理依赖关系(具有ForeignKey的模型应该在其父模型之后运行).python manage.py migrate --fake-initial之后我运行了没有--fake-initial标志的最后一个命令,只是为了确保.
现在一切正常,我可以正常使用迁移系统.
我确信我不是唯一遇到这个问题的人.必须更好地记录,甚至简化.
Django 1.9用户的更新:
我再次使用Django 1.9.4这个场景,第5步失败了.
所有我必须做的是替换--fake-initial用--fake,使其工作.
| 归档时间: |
|
| 查看次数: |
54442 次 |
| 最近记录: |