在我的Java应用程序中,我设置了:
flyway.setBaselineVersionAsString("7")
但是,在还没有
schema_version
表的全新数据库上,Flyway不会考虑基准设置,而是运行所有迁移。有没有一种方法可以在迁移开始之前强制创建
schema_version
表,因为我尝试手动创建表并且代码工作正常。还是针对该问题有其他解决方案? 最佳答案
您正在运行哪个命令baseline
或migrate
?
如果运行的是baseline
,则需要发布更多配置才能确定出问题所在-因为创建具有基准版本的schema_version
表正是它的作用。
如果运行的是migrate
,则观察到的行为是正确的-也就是说,在非Flyway托管数据库上,将创建schema_version
表,并运行所有迁移。一个例外是如果您设置了baselineOnMigrate
,它将在启动baseline
之前有效地运行隐式migrate
。
自己创建schema_version
当然是您不应该做的事情,您将完全损害Flyways的智能。