【发布时间】:2018-10-17 08:14:30
【问题描述】:
我正在尝试使用 Flyway 在 Spring Boot 应用程序中的嵌入式 H2 数据库上进行迁移演示。
application.properties
logging.level.org.org.springframework=DEBUG
server.port=8181
spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
spring.flyway.baseline-on-migrate=true
spring.jpa.hibernate.ddl-auto=none
db/migration 下的migration-script(V2__create_shipwreck.sql)
CREATE TABLE SHIPWRECK(ID INT AUTO_INCREMENT,
NAME VARCHAR(255),
DESCRIPTION VARCHAR(2000),
CONDITION VARCHAR(255),
DEPTH INT,
LATITUDE DOUBLE,
LANGITUDE DOUBLE,
YEARS_DISCOERED INT);
控制台日志
INFO 7284 --- [主要] o.f.c.internal.database.DatabaseFactory: 数据库:jdbc:h2:mem:testdb (H2 1.4)
INFO 7284 --- [main] o.f.core.internal.command.DbValidate: 成功验证 1 个迁移(执行时间 00:00.031s)
INFO 7284 --- [main] o.f.c.i.s.JdbcTableSchemaHistory:创建模式 历史表:"PUBLIC"."flyway_schema_history"
INFO 7284 --- [main] o.f.core.internal.command.DbMigrate:当前 架构“公共”的版本:>
INFO 7284 --- [main] o.f.core.internal.command.DbMigrate:迁移 架构“公共”到版本 2 - 创建沉船
INFO 7284 --- [主要] o.f.core.internal.command.DbMigrate : 已成功将 1 次迁移应用到架构“PUBLIC”(执行时间 00:00.098s)
信息 7284 --- [主要] j.LocalContainerEntityManagerFactoryBean : 为持久化单元构建 JPA 容器 EntityManagerFactory '默认'
INFO 7284 --- [主要] o.hibernate.jpa.internal.util.LogHelper : HHH000204:处理 PersistenceUnitInfo [名称:默认...]
main] org.hibernate.Version : HHH000412: 休眠 核心{5.2.14.Final}
main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties 未找到
main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons 注解 {5.0.1.Final}
main] org.hibernate.dialect.Dialect : HHH000400: 使用 方言:org.hibernate.dialect.H2Dialect
main] j.LocalContainerEntityManagerFactoryBean : 初始化的 JPA 持久性单元“默认”的 EntityManagerFactory
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.boot</groupId>
<artifactId>das-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>das-boot</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.0.7</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.0.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
H2 数据库表界面
启动Spring Boot应用后,还没有创建表,请问这里有什么问题?
【问题讨论】:
-
请包含
pom.xml -
@LuayAbdulraheem 我已添加 pom.xml
-
您的日志是相反的:“将架构“PUBLIC”迁移到版本 2 - 创建沉船”和“成功将 1 次迁移应用到架构“PUBLIC”(执行时间 00:00.098 秒)”。您是如何检查迁移脚本中的表是否尚未创建的?
标签: java spring-boot jpa h2 flyway