我创建了一个大型迁移,它创建了我的初始架构并运行了数据库更新。
之后我注意到一个应该是DateTime类型的字段意外地是字符串类型。我把它固定在我的模型中。
现在我应该将数据库更新为有错误的数据库之前的迁移,删除错误的迁移,然后再次重新添加迁移。或者只是添加一个只修补修复程序的新迁移。
我倾向于回滚,删除,然后重新添加的原因是因为我不希望任何搞乱的迁移与不正确的信息我会吗?我认为迁移是不正确的。
我相信这种混乱是因为我从未在生产环境中使用迁移,因此我认为我并不知道它们的强大功能。因此,我希望有人能够澄清旧迁移是否存在错误,或者是否应该全部没有错误,并在添加新模型/实体时显示数据库的整个进度。
答案 0 :(得分:1)
迁移只是一种帮助您在架构更改之间保留数据的工具。它们对于管理团队环境中的dev / test / production或dev-local数据库等多个数据库服务器特别方便。
如果你只有一台服务器,那么重写迁移是很便宜的,所以请继续这样纠正。
如果您团队中的每个人都已应用迁移,或者您已将其应用于包含您希望保留的数据的数据库,那么使用新迁移更新列会更简单。
换句话说,没有正确或错误的方式来使用迁移,只有与重写历史相关的成本。