我开始了一个使用迁移系统的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'")
。
现在,这个“列”不是一个真实的列。这是@property
Djangocontenttypes
应用程序中定义的。这里发生了什么?为什么将name
属性标识为真实列?