我遇到过这样一种情况:在我的应用程序的一个重要环境中,使用最新的代码更改生成了一个迁移文件,并将其应用于数据库。由于模型上有几处更改,因此名称是自动生成的,并带有时间戳。
不幸的是,文件在那之后就丢失了,并且没有提交到版本控制系统中。
现在我非常确定,使用创建此迁移文件的相同版本,我可以重新创建完全相同的迁移文件,但它将具有不同的名称(具有不同的时间戳),并将导致Django失败(因为迁移删除了一个表)。
在这种情况下,我知道新生成的文件与丢失但应用于数据库的文件相匹配,我是否可以重命名新文件以匹配应用的文件的名称-以便Django可以识别应用的迁移?我不确定Django如何评估应用的迁移和识别文件..是否像迁移历史记录表中存储的那样,仅按文件名命名?
另外,我正在考虑的方案中有没有更好的解决方案?
发布于 2021-01-14 02:55:42
您可以将新生成的迁移重命名为django_migrations表中的迁移。这应该已经足够了,你可以继续下去了。
查看Migrations - Version control,其中描述了Django关心迁移的文件名。
您可以而且应该在您的开发环境中测试它。
https://stackoverflow.com/questions/65704143
复制相似问题