【发布时间】:2020-01-09 05:27:12
【问题描述】:
我在 Spring Boot 2 项目中启用了 h2 和 flyway。
我的属性如下:
spring.datasource.url: jdbc:h2:mem:mydatabasename
spring.datasource.driverClassName: org.h2.Driver
spring.datasource.username: sa
spring.datasource.password:
spring.jpa.database-platform: org.hibernate.dialect.H2Dialect
spring.h2.console.enabled: true
spring.h2.console.path: /h2
spring.flyway.url: ${spring.datasource.url}
spring.flyway.schemas : mydatabasename
spring.flyway.user: ${spring.datasource.username}
spring.flyway.password : ${spring.datasource.password}
db.migration 文件是常用的(resources/db/migration/V1__Initial_version.sql)
CREATE TABLE PRODUCT
(
ID VARCHAR(200) PRIMARY KEY,
PRODUCTID VARCHAR(30)
);
它的工作原理:
o.f.c.internal.license.VersionPrinter : Flyway Community Edition 5.2.4 by Boxfuse
o.f.c.internal.database.DatabaseFactory : Database: jdbc:h2:mem:mydatabasename (H2 1.4)
o.f.c.internal.database.base.Database : Flyway upgrade recommended: H2 1.4.199 is newer than this version of Flyway and support has not been tested.
o.f.core.internal.command.DbSchemas : Creating schema "mydatabasename" ...
o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table: "mydatabasename"."flyway_schema_history"
o.f.core.internal.command.DbMigrate : Current version of schema "mydatabasename": null
o.f.core.internal.command.DbMigrate : Migrating schema "mydatabasename" to version 1 - Initial version
o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "mydatabasename" (execution time 00:00.021s)
但是,当我登录到 H2 控制台时(我使用完全相同的 url,jdbc:h2:mem:mydatabasename)我确实登录了,但我什么也没看到,只有 INFORMATION_SCHEMA。此外,“显示架构”显示 INFORMATION_SCHEMA 和 PUBLIC 和 PUBLIC 也不存在于左侧列中。
【问题讨论】:
-
你的flyway迁移脚本是什么?实际的 SQL 文件?
-
@LipingHuang 会更新问题,但它是一个基本的创建表。
标签: spring spring-boot spring-data h2 flyway