我的一个小项目即将发布,它基于squeryl - Scala 的类型安全关系数据库框架(基于 JVM 的语言)。
我预计在初始部署后会进行多次更新。在数据库中输入的数据应该被持久化。如果没有某种数据迁移过程,为更新的数据库模式升级数据,这是不可能的。使用旧数据测试新代码也需要兼容性补丁。
现在我使用框架自动生成模式。它似乎只能从头开始创建模式 - 没有数据持续存在。
是否有方法可以在不完全放弃自动模式生成的情况下轻松、正式地将数据迁移到更改的模式?
到目前为止,我只能看到一种简单的添加列的方法:我们转储旧数据,为新列提供默认值,重置架构并恢复旧数据。
如何删除、重命名、更改列类型或语义?
如果模式生成对于生产数据库迁移没有用处,那么对于传统的手动/脚本重新部署要遵循哪些标准程序?