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

使用r2dbc配置的liquibase初始化

邓翼
2023-03-14
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
    implementation 'org.springframework.boot:spring-boot-starter-webflux'
    implementation 'org.liquibase:liquibase-core'

    compileOnly 'org.projectlombok:lombok'

    runtimeOnly 'org.liquibase:liquibase-core'
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'io.r2dbc:r2dbc-h2'
    runtimeOnly 'io.r2dbc:r2dbc-postgresql'
    runtimeOnly 'org.postgresql:postgresql'

    annotationProcessor 'org.projectlombok:lombok'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.projectreactor:reactor-test'
}
spring.r2dbc.url=r2dbc:postgresql://127.0.0.1:5432/test
spring.r2dbc.username=postgres
spring.r2dbc.password=123
spring.r2dbc.pool.enabled=true
spring.r2dbc.pool.initial-size=10
spring.data.r2dbc.repositories.enabled=true

spring.liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml
spring.liquibase.url=jdbc:postgresql://127.0.0.1:5432/test
spring.liquibase.user=postgres
spring.datasource.driver-class-name=org.postgresql.Driver
logging.level.liquibase = INFO
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [liquibase.integration.spring.SpringLiquibase]: Factory method 'liquibase' threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/SimpleDriverDataSource

共有1个答案

荆乐
2023-03-14

您需要添加org.springframework:spring-jdbc的依赖项。来自Spring Boot参考文档:

或者,您可以配置Flyway或Liquibase,以便在迁移期间为您配置数据源。这两个库都提供了设置要迁移的数据库的url、用户名和密码的属性。

选择此选项时,org.springframework:spring-jdbc仍然是必需的依赖项。

 类似资料:
  • 我有以下代码: 以及: 我得到以下错误: 以及更早的错误: 如果我将代码修改为: 然后,我不再得到关于项目关系存在的错误,但是,似乎事务被完全取消了? 我得到以下输出: 所以我的问题是 > 正确的方法是什么? 为什么我的CommandLineRunner代码似乎执行了两次?该表在运行代码后不会持久化,因此它似乎必须执行两次才能获得关于现有表的第一个错误。 谢谢你。

  • 我试图保存到带有加密字段的表,但找不到R2DBC支持。 加密列的图像 发现类似问题,但未使用R2DBC 使用Azure Key Vault和Spring Boot的SQL Server列加密 JDBC文档它解释了如何做到这一点,但我没有发现与R2DBC类似的东西 https://docs.microsoft.com/en-us/sql/connect/jdbc/using-always-encry

  • 本文介绍如何对 Kubernetes 上的集群进行初始化配置完成初始化账号和密码设置,以及批量自动执行 SQL 语句对数据库进行初始化。 注意: 如果 TiDB 集群创建完以后手动修改过 root 用户的密码,初始化会失败。 以下功能只在 TiDB 集群创建后第一次执行起作用,执行完以后再修改不会生效。 配置 TidbInitializer 请参考 TidbInitializer 示例和 API

  • 我正试图让ubuntu上的liquibase 3.10.2首次在Db2仓库中运行。在教程示例之后,H2“liquibase update”示例运行良好。 使用指定的jar和下面的url字符串,可以很好地使用dbeaver,但将其转换为liquibase会提供以下错误。 更新的附加信息: (1)导致显示错误的完整命令行是什么?我正在发布h2教程中引用的简单示例 (2)更改日志文件内容是什么这与示例h

  • sudo cp/etc/kubernetes/admin.conf$home/sudo chown$(id-u):$(id-g)$home/admin.conf导出kubeconfig=$home/admin.conf 设置组织 kubectl apply--文件名https://git.io/weave-kube-1.6 验证主模式是否已就绪,以及dns吊舱是否正在运行。 没有错误的连接节点。

  • 问题内容: 我想知道如何初始化数据库而不必创建XML文件。 我已经使用了这种可以正常工作的初始化,但是在当前情况下,我不想创建XML: 我知道我可以使用以下方法创建嵌入式数据库: 就我而言,数据库和架构是使用Liquibase创建的。 我只想用Spring和我的自定义数据集来初始化它,而不必每次都为此创建一个新的XML文件。 可能吗? 问题答案: 在查看与EmbeddedDatabaseBuild