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

gec*_*kon 24 django django-migrations

从Django 1.8开始,该makemigrations命令可以--name, -n 选择为创建的迁移文件指定自定义名称.

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

knb*_*nbk 31

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

因此,重命名迁移的步骤如下:

  1. 重命名文件.
  2. 重新指向新文件的所有依赖项.
  3. 如果已应用重命名的迁移,请使用再次应用它--fake.

如果这是一个全新的迁移,2和3将不适用,重命名它们是完全正常的.


ode*_*den 13

每当迁移被压扁时,Django就会发生这种情况.生成包含类变量的新文件replaces,该文件列出要替换的迁移文件.

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

replaces = [('app name', 'migration file name'), ]
Run Code Online (Sandbox Code Playgroud)

一切都像文件更改之前一样.