【发布时间】:2017-08-23 06:26:54
【问题描述】:
我正在尝试使用 Flyway 对模块化应用程序的数据库进行版本控制。每个模块都有自己独立的一组表,以及将控制该组表的版本控制的迁移脚本。
Flyway 允许我为每个模块指定不同的元数据表——这样我可以独立地对每个模块进行版本控制。当我尝试升级应用程序时,我为每个模块运行一个迁移过程,每个模块都有自己的表和一组脚本。请注意,这些表都在同一个架构中。
但是,当我尝试迁移我的应用程序时,第一次迁移是唯一有效的迁移。后续迁移失败,出现以下异常:org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.
如果我为每个模块手动创建元数据表,每个模块的迁移工作正常。自己创建表格而不是让 Flyway 为我创建表格似乎是解决问题的技巧,而不是解决方案本身。
这是独立管理多组表的有效方法,还是有更好的方法?自己创建元数据表是否有效?
【问题讨论】:
标签: postgresql flyway