我启动了一个 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'")
.
现在,这个“专栏”不是一个真正的专栏。这是在 Django 的 contenttypes
应用程序中定义的 @property
。这是怎么回事?为什么它将 name
属性标识为真正的列?