Flyway 没有创建表
Flyway did not create tables
我一直在尝试使用 spring boot 和 flyway 创建 Web 应用程序。构建工具是 Gradle。但是,当我尝试 运行 时,Flyway 程序只创建了一个名为 flyway_schema_hystory 的 table,但没有从 SQL 脚本创建 table。脚本 V1__Create_all_tables.sql
在正确的程序包 src/main/resources/db/migration
上。添加了 build.gradle
中的依赖项,也在 app.properties
中添加了 flyway 属性。
Spring 启动 运行 秒没有错误。
build.gradle
依赖项
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
compileOnly 'org.projectlombok:lombok:1.18.16'
annotationProcessor 'org.projectlombok:lombok:1.18.16'
compile group: 'org.springframework.boot', name: 'spring-boot', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.4.2'
annotationProcessor('org.hibernate:hibernate-jpamodelgen:6.0.0.Alpha5')
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.18'
compile group: 'org.flywaydb', name: 'flyway-core', version: '7.5.3'
}
app.properties
#Databse
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/db_mydatabase
spring.datasource.username=postgres
spring.datasource.password=***
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto=none
#Flyway
spring.flyway.baselineOnMigrate=true
spring.flyway.check-location=true
spring.flyway.locations=classpath:db/migration
spring.flyway.schemas=public
spring.flyway.enabled=true
用于创建 table 的 sql 脚本示例(我使用的是 postgresql):
create table my_table (
id serial not null constraint cover_pkey primary key,
name varchar(30) not null ,
is_deleted boolean not null
);
flyway_schema_hystory
有什么问题?
换个名字试试,我觉得v1是为flyway的初始迁移保留的。试试 V1_1__create_all_tables.sql
我一直在尝试使用 spring boot 和 flyway 创建 Web 应用程序。构建工具是 Gradle。但是,当我尝试 运行 时,Flyway 程序只创建了一个名为 flyway_schema_hystory 的 table,但没有从 SQL 脚本创建 table。脚本 V1__Create_all_tables.sql
在正确的程序包 src/main/resources/db/migration
上。添加了 build.gradle
中的依赖项,也在 app.properties
中添加了 flyway 属性。
Spring 启动 运行 秒没有错误。
build.gradle
依赖项
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
compileOnly 'org.projectlombok:lombok:1.18.16'
annotationProcessor 'org.projectlombok:lombok:1.18.16'
compile group: 'org.springframework.boot', name: 'spring-boot', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '2.4.2'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.4.2'
annotationProcessor('org.hibernate:hibernate-jpamodelgen:6.0.0.Alpha5')
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.18'
compile group: 'org.flywaydb', name: 'flyway-core', version: '7.5.3'
}
app.properties
#Databse
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/db_mydatabase
spring.datasource.username=postgres
spring.datasource.password=***
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto=none
#Flyway
spring.flyway.baselineOnMigrate=true
spring.flyway.check-location=true
spring.flyway.locations=classpath:db/migration
spring.flyway.schemas=public
spring.flyway.enabled=true
用于创建 table 的 sql 脚本示例(我使用的是 postgresql):
create table my_table (
id serial not null constraint cover_pkey primary key,
name varchar(30) not null ,
is_deleted boolean not null
);
flyway_schema_hystory
有什么问题?
换个名字试试,我觉得v1是为flyway的初始迁移保留的。试试 V1_1__create_all_tables.sql