在我的Java应用程序中,我设置了:

flyway.setBaselineVersionAsString("7")


但是,在还没有schema_version表的全新数据库上,Flyway不会考虑基准设置,而是运行所有迁移。

有没有一种方法可以在迁移开始之前强制创建schema_version表,因为我尝试手动创建表并且代码工作正常。还是针对该问题有其他解决方案?

最佳答案

您正在运行哪个命令baselinemigrate

如果运行的是baseline,则需要发布更多配置才能确定出问题所在-因为创建具有基准版本的schema_version表正是它的作用。

如果运行的是migrate,则观察到的行为是正确的-也就是说,在非Flyway托管数据库上,将创建schema_version表,并运行所有迁移。一个例外是如果您设置了baselineOnMigrate,它将在启动baseline之前有效地运行隐式migrate

自己创建schema_version当然是您不应该做的事情,您将完全损害Flyways的智能。

09-26 06:39