我开始了一个使用迁移系统的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'")
我在这件事上花了HOURS。如何初始化迁移,以便每次都能继续工作而不会中断迁移?
为什么这么复杂?为什么没有一个简单的单线:initiate_migrations_from_schema?
编辑:
现在事情变得更糟了。我删节了django_migrations表并删除了所有migrations文件夹。
现在,我尝试运行python manage.py migrate --fake-initial(我在DEV文档中找到的东西),只是这样它设置了Django的所有“内部”应用程序(身份验证,会话等),并且我得到了:
(1054, "Unknown column 'name' in 'django_content_type'")。
现在,这个“列”不是一个真实的列。这是@propertyDjangocontenttypes应用程序中定义的。这里发生了什么?为什么将name属性标识为真实列?