spring 可以在启动时创建一个新模式(使用 flyway)然后通过默认数据源连接到它吗?
Can spring create a new schema (using flyway) at startup and then connect to it via default datasource?
我的 spring-boot 应用程序设置了以下属性,
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema
spring.datasource.username=root
spring.datasource.password=*****
spring.flyway.check-location=false
spring.flyway.createSchemas=true
spring.flyway.schemas=my-schema
模式 'my-schema' 不预先存在,我希望它由 flyway 创建,然后由 spring-boot 应用程序使用以启动 HikarCP 数据源。
如果我 运行 具有上述配置的应用程序在启动时出现以下错误:
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain connection from database: Unknown database 'my-schema'
现在,如果我改变,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/
应用程序完美启动并创建了架构。但是,当它尝试查询任何 table 时,抛出的异常是:
java.sql.SQLException: No database selected
您可以使用纯粹用于迁移的 URL 配置 Flyway,然后将您的应用配置为使用不同的 URL。像这样:
spring.flyway.url=jdbc:mysql://127.0.0.1:3306
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema
您还需要使用 spring.flyway.user
和 spring.flyway.password
为特定于 Flyway 的数据库连接提供凭据。
我的 spring-boot 应用程序设置了以下属性,
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema
spring.datasource.username=root
spring.datasource.password=*****
spring.flyway.check-location=false
spring.flyway.createSchemas=true
spring.flyway.schemas=my-schema
模式 'my-schema' 不预先存在,我希望它由 flyway 创建,然后由 spring-boot 应用程序使用以启动 HikarCP 数据源。
如果我 运行 具有上述配置的应用程序在启动时出现以下错误:
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain connection from database: Unknown database 'my-schema'
现在,如果我改变,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/
应用程序完美启动并创建了架构。但是,当它尝试查询任何 table 时,抛出的异常是:
java.sql.SQLException: No database selected
您可以使用纯粹用于迁移的 URL 配置 Flyway,然后将您的应用配置为使用不同的 URL。像这样:
spring.flyway.url=jdbc:mysql://127.0.0.1:3306
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my-schema
您还需要使用 spring.flyway.user
和 spring.flyway.password
为特定于 Flyway 的数据库连接提供凭据。