Java 创建jpa表后的Flyway迁移

Java 创建jpa表后的Flyway迁移,java,spring-data-jpa,spring-data,database-migration,flyway,Java,Spring Data Jpa,Spring Data,Database Migration,Flyway,我将flyway数据库迁移工具用于spring boot jpa项目。当我第一次运行服务器时,flyway希望迁移sqls,但尚未创建表。在这种情况下,flyway返回一个错误,如下所示 原因:org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateSqlException: 迁移V1_uucountries_和_states.sql失败 SQL状态:42S02 错误代码:1146 消息:表“wallet.country”不存在 位置:

我将flyway数据库迁移工具用于spring boot jpa项目。当我第一次运行服务器时,flyway希望迁移sqls,但尚未创建表。在这种情况下,flyway返回一个错误,如下所示

原因:org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateSqlException:
迁移V1_uucountries_和_states.sql失败
SQL状态:42S02
错误代码:1146
消息:表“wallet.country”不存在
位置:db/migration/V1_ucountries_and_states.sql(/root/IdeaProjects/service/target/classes/db/migration/V1_ucountries_and_states.sql)
行:1
我使用以下选项配置了application.properties文件:

  • 迁移时spring.flyway.baseline=true
  • spring.flyway.enabled=true
  • spring.flyway.clean on验证错误=true
  • 迁移时spring.flyway.init=true

我希望我的迁移已经成功完成。

您的第一次迁移必须创建表


阅读本教程:

可用于以下配置属性:
flyway.out-of-order=true
。它说flyway在创建/更新hibernate/jpa表之后工作。

您可能应该让jpa提供程序将DDL脚本输出到文件中,而不是让它创建表&c。在运行时运行。然后可以将这些DDL脚本与flyway一起使用。无论如何,让普通应用程序执行DDL不是一个好做法。谢谢Simon Martinelli,但我想在hibernate自动创建表之后迁移flyway SQL。我认为这是不可能的flywayPlus这不是一个好主意!最好是让hibernate创建SQLDDL文件,然后对其进行改进,并将其用作第一次迁移。