我有两个文件: db结构,和db数据sql文件。(我们还没有在项目中创建alter文件)。
有没有办法在每次构建之前运行这些文件,如果它们中的任何一个使用maven进行了更改?
我唯一的想法是在每次更改文件后重命名文件(带上版本),以确保flyaway将其拾取。
有没有更聪明的方法,也许是使用API或其他一些“技巧”?
谢谢
--MB
发布于 2011-07-15 21:13:54
可以通过以下配置使用flyway migrate
validationMode=ALL
validationErrorMode=CLEAN对于每次sql迁移,在执行sql脚本时都会计算CRC32校验和。验证机制检查类路径中的sql迁移是否仍具有与数据库中已执行的sql迁移相同的校验和。
validationErrorMode=CLEAN的唯一目的是为了方便开发。尽管我们强烈建议,一旦迁移脚本签入SCM并运行,就不要更改它们,这提供了一种平稳处理这种情况的方法。数据库将被自动清除,确保下一次迁移将使您返回到已检入SCM的状态。
此配置可通过API、maven plugin或command line使用。
发布于 2014-04-25 23:48:00
使用较新的Flyway,您可以使用
flyway.setInitOnMigrate(true);
flyway.setCleanOnValidationError(true);
flyway.setValidateOnMigrate(true);如果文件的校验和更改或版本表丢失,则删除所有内容。
https://stackoverflow.com/questions/6650073
复制相似问题