我使用South(0.7)和Django(1.1.2)积累了大量的迁移,这些迁移在我的单元测试中开始消耗相当多的时间.我想重置基线并开始一系列新的迁移.我查看了南方文档,完成了通常的Google/Stackoverflow搜索(例如"django south(重置或删除或删除)迁移历史记录")并且没有找到任何明显的内容.
我已经考虑过的一种方法是通过"删除"南方或"清除"历史记录(例如清除数据库表,从迁移控制器中删除迁移文件)来"重新开始",然后重新运行,
./manage.py schemamigration southtut --initial
所以,如果有人之前已经这样做并有一些提示/建议,他们将不胜感激.
南方已有类似的问题,但我已经开始使用Django 1.7进行我的项目,而不是使用South.
在开发过程中,已经创建了许多迁移,但是软件尚未完成,并且不存在必须迁移的数据库.因此,我想重置迁移,就像我当前的模型是原始模型并重新创建所有数据库一样.
建议的方法是什么?
编辑:从Django 1.8开始,有一个名为squashmigrations的新命令,它或多或少地解决了这里描述的问题.
我启动了一个使用迁移系统的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属性识别为真正的列?
是否有django命令
A.删除所有表格
B.删除所有表格中的所有数据
C.创建模型中定义的所有表格?
我现在找不到这些!
而命令我指的是那些小事情
runserver
Run Code Online (Sandbox Code Playgroud)
等等
一些manage.py命令将Django应用程序作为参数.有时我想使用这些命令,但不记得应用程序的名称.有没有办法让manage.py提供这样的列表?