重命名Django迁移文件是否安全?

时间:2015-05-24 16:46:51

标签: django django-migrations

自Django 1.8起,makemigrations命令有--name, -n option来指定创建的迁移文件的自定义名称。

我想知道在旧版本的Django中使用自动生成的名称创建迁移文件是否安全,然后手动重命名该文件。它似乎按预期工作。有潜在的风险吗?

2 个答案:

答案 0 :(得分:27)

这是有效的,但有一点需要注意:Django将不再知道已应用重命名的迁移。

所以重命名迁移的步骤是:

  1. 重命名文件。
  2. 重新指出对新文件的所有依赖关系。
  3. 如果已应用重命名的迁移,请使用--fake再次应用它。
  4. 如果它是全新的迁移,则2和3不会适用,重命名它们完全没问题。

答案 1 :(得分:13)

每次迁移被压扁时,都会在Django中发生这种情况。生成一个包含类变量replaces的新文件,该文件列出了正在替换的迁移文件。

因此,要重命名文件迁移文件,请在Migration类中添加以下变量:

replaces = [('app name', 'migration file name'), ]

一切都像文件更改前一样。