Flyway - drop db,创建db

时间:2011-07-11 12:27:35

标签: migration flyway

我有2个文件:db结构和db数据sql文件。 (我们还没有参与创建alter文件的项目。)

有没有办法在每次构建之前运行这些文件,如果它们中的任何一个使用maven进行了更改?

我唯一的想法是在每次更改后重命名文件(将版本提升),确保flyaway将其取出。

是否有更智能的方式,可能使用API​​或其他“技巧”?

由于

- MB

2 个答案:

答案 0 :(得分:6)

您可以使用以下配置进行flyway迁移

validationMode=ALL
validationErrorMode=CLEAN

对于每个sql迁移,在执行sql脚本时计算CRC32校验和。验证机制检查类路径中的sql迁移是否仍然与已在数据库中执行的sql迁移具有相同的校验和。

validationErrorMode = CLEAN专门用于开发的便利。即使很难,我们也强烈建议您在检查SCM并运行后不要更改迁移脚本,这提供了一种以平滑方式处理此案例的方法。数据库将自动擦除,确保下一次迁移将使您返回检入SCM的状态。

此配置可以在API,maven plugincommand line中使用。

答案 1 :(得分:0)

使用较新的Flyway,您可以使用

flyway.setInitOnMigrate(true);
flyway.setCleanOnValidationError(true);
flyway.setValidateOnMigrate(true);

如果文件的校验和发生变化或缺少版本表,则删除所有内容。