我正在尝试使用kotlin Spring boot、jpa和PostgreSQL配置flyway。我的分级依赖关系是:
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('com.fasterxml.jackson.module:jackson-module-kotlin')
implementation('org.flywaydb:flyway-core')
implementation('com.google.code.gson:gson')
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
runtimeOnly('org.postgresql:postgresql')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.url=jdbc:postgresql://${JDBC_DATABASE_URL}/jpaTestDatabase
spring.datasource.username=${JDBC_DATABASE_USERNAME}
spring.datasource.password=${JDBC_DATABASE_PASSWORD}
flyway.baseline-on-migrate=true
flyway.locations=classpath:src/main/kotlin/db/migration
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=validate
spring.session.store-type=none
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]:
Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException:
Found non-empty schema(s) "public" without schema history table! Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
我只有一个迁移,它是在这里找到的示例迁移的kotlinized版本,我对其进行了修改,以查看以下内容:
class V1__Sample : BaseJavaMigration() {
override fun migrate(context: Context?) {
val statement = context?.connection?.prepareStatement(
"""
CREATE TABLE article (
id bigserial primary key,
name varchar(20) NOT NULL,
desc text NOT NULL
);
"""
)
statement.use { it?.execute() }
}
}
我错过了什么?为什么Flyway一直抱怨在数据库完全为空(干净的docker映像)的情况下,发现没有模式历史表的非空模式“public”?
假设您使用的是spring-boot版本2。
在spring Boot2中,前缀是“spring.flyway”,因此尝试添加前缀spring
如下所示。
spring.flyway.baseline-on-migrate=true
或
spring.flyway.baselineonmigrate=true
我正在尝试使用kotlin Spring Boot、jpa和postgreSQL配置flyway。我的gradle依赖项是: 我的application.properties文件是: 使用jpa和hibernate创建表和条目按预期工作。但是,在空数据库上进行示例迁移会导致: 我的目录结构是spring Initializer生成的默认目录结构,我的迁移位于:
我正在尝试使用Flyway 4.2.0 Oracle 11g实现DB迁移 我有一个空模式: 当我尝试迁移时,Flyway说: 原因:<代码>组织。flywaydb。果心应用程序编程接口。FlywayException(FlywayException):找到了不带元数据表的非空架构“”!使用或将设置为初始化元数据表。 这是配置: 为什么我会收到此消息?我的基地是空的。
我知道以前有人问过这个问题,但我在这里绕圈子。。。。 我有一个postgres14数据库和一个运行flywaydb:7.13.0和flywaycore:8.5.10的Springboot应用程序 我正在使用 RDS。我使用 root 帐户手动创建了一个新数据库。当我运行Spring靴时,我的飞行路线迁移失败并出现错误 找到非空架构“public ”,但没有架构历史表。使用baseline()或将b
我刚刚在Maven学习Spring Boot,遇到了一个无法解决的错误。我从Flyway附加了一个依赖项,当我想安装它时(我单击Lifecycle上的install),会出现以下错误: 找到非空架构“PUBLIC”,但没有架构历史记录表。使用baseline()或将baselineOnMigrate设置为true来初始化架构历史记录表。 这可能是什么原因造成的,如何修复? 我正在使用Java8,我
首先,我将用现实生活中的例子来解释我的问题。假设我们是一家公司,我们销售不同的运输工具,例如汽车、公共汽车、卡车、火车、飞机等。假设我们有大约10,000,000种不同的产品,每天都有变化。 对于每个项目,我们都有一个唯一的名称(例如,汽车奥迪A8 X或飞机波音747-200by),其中X和Y是唯一的值。不用担心命名,因为它工作很好。 对于每一项,我们也有一些特殊的数据。数据取决于类型,例如汽车:
我已经通读了Flyway(2.1.1)留档,我只是想澄清一点… 我将当前的DDL从生产数据库转储到一个文件V1__baseddl.sql中。我验证了我们的QA数据库有一个与生产相匹配的模式。 我现在想把我们的QA数据库置于Flyway管理之下(接着是生产)。我们通过API使用Flyway。我调用了flyway.setInitVersion(1),然后是flyway.init(),我希望它能找到V1