根据我对flyway / liquibase的理解,他们提供了通过预先配置的脚本(SQL查询,Java文件等)执行数据库升级的方法。但我对以下内容不是很清楚:
如果存在破坏性升级会发生什么情况。
我有一个用例,比如将bigint列(包含数据)更改为日期类型。如果我尝试直接更改它,我将最终得到列的损坏数据。 flyway / liquibase如何处理这些升级?
预先配置的脚本是否是说flyway / liquibase的唯一方法,这些是我的更改,或者还有其他任何方式。如果还有其他方法,它会以查询的形式输出差异吗?
如果有人了解上述内容,将会非常有帮助。
答案 0 :(得分:0)
在Liquibase中,您可以使用SQL Formated脚本来完成这项工作,我假设您尝试使用XML标记标记以避免必须执行原始SQL并遇到因为XML正好翻译而导致的问题。想做。让生活更轻松,使用SQL脚本并利用Liquibase。
答案 1 :(得分:0)
从Flyway的角度讲,它从一开始就是用sql和java支持构建的。如何使用其中任何一种迁移数据库是您的责任。 Flyway会像你说的那样做。