我的团队在.gitignore中有Django迁移文件,所以没有提交这些文件。相反,我们一直在我们的生产服务器上进行迁移。我们发现这不是推荐的做法(遇到Should I be adding the Django migration files in the .gitignore file?时)。它会导致问题 - 在这个时间点 - 从.gitignore中移除迁移,在开发机器上移植,在生产服务器上提交,推送和应用迁移吗?如果是这样,我们如何解决这些问题呢?
这个问题很大程度上是因为我们需要应用自己部分编写的自定义迁移。 (因此,在开发计算机上进行迁移和提交它们之间实际上还有一个额外的步骤,即将我们的自定义代码添加到迁移文件中。)
答案 0 :(得分:2)
我认为唯一的方法是将所有迁移从生产服务器复制到您的仓库然后提交它们。这很可能是一个手动过程,因为您的生产服务器是唯一跟踪所有迁移的地方。您无需担心如何迁移生产服务器,因为它保留了原始副本。但是,所有这些都应该在添加和应用任何新迁移之前完成。
修复完毕后,您应该在本地开发环境中创建新的迁移,添加到git并将迁移推送到生产环境,然后应用迁移。请记住让您的CI或其他内容检查重复的迁移文件。