Django 迁移删除和更新

Django migration delete and update

我已经有了一些迁移文件,我在模型上做了一些修改,做了

python manage.py makemigrations
python manage.py migrate

在那之后,在 postgresql table django_migrations 中有一行表明我已经应用了该迁移,我们称此为 migrationA。 我删除了新生成的迁移文件(migrationA),修改了我模型中的一小部分然后做了

python manage.py makemigrations
python manage.py migrate

这会生成migrationB。我希望这可以像压缩迁移文件一样。

这样的流程会不会有什么问题?我现在没有看到任何问题,但想确保这是一种安全的做事方式。另外,请问有什么方法可以让postgresql恢复到我申请migrationA之前的时间吗?

是的,会惹麻烦。所有迁移都存储在迁移 table 中,仅删除迁移会导致实际迁移与记录的内容不一致。

在删除迁移和创建新迁移之前,您需要先通过 运行 ./manage.py migrate my_app number_previous_migration_name 还原它。