当前位置: 首页 > 知识库问答 >
问题:

Flyway没有创建表

羿易安
2023-03-14

我一直在尝试使用springboot和flyway创建一个web应用程序。构建工具是Gradle。然而,当我尝试运行程序时,Flyway只创建了一个名为Flyway_schema_hystory的表,但不从SQL脚本创建表。脚本<code>V1__Create_all_tables。sql位于正确的包src/main/resources/db/migration中。<code>构建中的依赖项。添加了gradle</code>,在<code>应用程序中添加了flyway属性。属性。Spring引导运行无错误。

<code>构建。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'
}

应用属性

#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

用于创建表的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

有什么问题?

共有2个答案

凌声
2023-03-14

在这里,flyway的凭据在哪里,如果没有定义,则需要在下面的连接配置中添加application.properties.

spring.flyway.url=jdbc:postgresql://localhost:5432/postgres
spring.flyway.user=postgres
spring.flyway.password=postgres

确保您的数据库在正确的端口上运行。

岳俊晖
2023-03-14

尝试更改名称,我认为v1是为飞行路线的初始迁移保留的。尝试类似V1_1__create_all_tables.sql的东西

 类似资料:
  • 我最近在springboot和flyway一起工作,我有这样一个问题。为什么flyway没有创建数据库?我刚刚在我的build.gradle中添加了一个flyway依赖项,现在看起来是这样的。 我这样配置数据源: 这里是我的Hibernate。属性: 和迁移文件,位于resources/db/migration中: 有什么问题?是否应该在Application.Properties中配置datas

  • 我正在使用flyway数据库迁移工具和一个spring boot jpa项目。当我第一次运行服务器时,flyway希望迁移SQL,但表还没有创建。在这种情况下,flyway返回一个错误,该错误类似 spring.flyway.baseline-on-migrate=true spring.flyway.enabled=true spring.flyway.clean-on-validation-e

  • 问题:是否可以在迁移脚本中创建一个新的DB,然后连接到它?怎么做? 我的场景:我试图在我的Java项目(使用Jersey2.4+Tomcat7+PostgreSQL 9.3.1+EclipseLink的RESTful应用程序)中使用flyway来管理使用Git的不同开发人员之间的更改。我编写了我的init脚本并运行它: 而且效果很好。问题是我不能用我的脚本创建新的DB。当我在脚本中包含以下一行时:

  • 下面是我的dispatcher-servlet.xml文件: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context/spring-context

  • 问题内容: 问题: 是否可以在迁移脚本中创建一个新的数据库,然后连接到它?怎么样? 我的场景: 我正在尝试在Java项目(使用Jersey2.4 + tomcat 7 + PostgreSQL 9.3.1 + EclipseLink的RESTful应用程序)中使用flyway来管理使用git的不同开发人员之间的更改。我写了自己的初始化脚本,并运行了: 而且效果很好。问题是我无法使用脚本创建新的数据