Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何改变南方移民的顺序_Django_Django South - Fatal编程技术网

Django 如何改变南方移民的顺序

Django 如何改变南方移民的顺序,django,django-south,Django,Django South,在我的store应用程序中,我有大约50次迁移,其中一些是schemamigration和一些datamigration。现在我想在0037\u一些值到对象之前运行0039\u add\u column\u is\u worldwide。因此,我将那里的名称0037\u add\u column\u is\u worldwide和0039\u一些值\u改为\u objects 当我对新数据库执行syncdb时,它工作正常,但在现有数据库中进行新迁移时,会出现此错误 引发异常。不一致的迁移历史记录

在我的
store
应用程序中,我有大约50次迁移,其中一些是
schemamigration
和一些
datamigration
。现在我想在
0037\u一些值到对象之前运行
0039\u add\u column\u is\u worldwide
。因此,我将那里的名称
0037\u add\u column\u is\u worldwide
0039\u一些值\u改为\u objects

当我对新数据库执行
syncdb
时,它工作正常,但在现有数据库中进行新迁移时,会出现此错误

引发异常。不一致的迁移历史记录(问题) south.exceptions.unconsistentMigrationHistory:不一致的迁移历史 以下选项可用: --合并:将只尝试迁移,忽略任何潜在的依赖项冲突


我不想丢失我的数据,因此是否有必要更改这些迁移的顺序?

迁移在运行时存储在数据库中,因此如果您已经应用了这些迁移,那么将丢失数据。你的选择:

  • 刷新迁移表(如果调用migrate,将导致所有迁移再次运行)
  • 回滚这些迁移(重命名之前)
  • 伪造这些迁移(migrate--false,但数字可能与DB中的数字冲突)
回滚对我来说似乎是最安全的,只是确保项目中的每个人都这样做

如果您仍在开发环境中,并且没有prod数据库,则始终可以从零重新启动:

  • 冲洗南部db
  • 迁移——伪造

迁移在运行时存储在DB中,因此如果您已经应用了这些迁移,那么将丢失这些迁移。你的选择:

  • 刷新迁移表(如果调用migrate,将导致所有迁移再次运行)
  • 回滚这些迁移(重命名之前)
  • 伪造这些迁移(migrate--false,但数字可能与DB中的数字冲突)
回滚对我来说似乎是最安全的,只是确保项目中的每个人都这样做

如果您仍在开发环境中,并且没有prod数据库,则始终可以从零重新启动:

  • 冲洗南部db
  • 迁移——伪造

我想您的数据库已经完成了“0037\u一些值到对象”

我会这样做:

删除forward()中的代码和“0037\u一些\u值\u到\u对象”中的其他方法。这种迁移没有任何作用。现在添加两个新迁移


经验法则:如果一个系统进行了迁移,不要删除它。将其设为空。

我想您的数据库已经完成了“0037\u一些\u值到\u对象”

我会这样做:

删除forward()中的代码和“0037\u一些\u值\u到\u对象”中的其他方法。这种迁移没有任何作用。现在添加两个新迁移


经验法则:如果一个系统进行了迁移,不要删除它。将其设置为空。

在更改迁移名称之前是否将数据库回滚到迁移36?在更改迁移名称之前是否将数据库回滚到迁移36?最终选择了哪种解决方案?最安全的解决方案:)我有prod db,因此刷新将有风险!您最终选择了哪种解决方案?您最安全的解决方案:)我有prod db,因此
flush
将有风险!