spring-boot - R2DBC 和 liquibase
问题描述
所以开始一个新项目,我想使用 r2dbc 和 webflux,一直在研究有什么支持来处理数据库迁移。我在这里能找到的最后一个答案是从 2019 年 7 月开始,liquibase 不支持 R2DBC,在谷歌搜索之后,情况似乎仍然如此。
梦想是r2dbc-h2
在本地开发时使用,然后在生产过程中使用类似 postgres 的东西。Liquibase 将在本地和生产中管理表结构。
一直在尝试用谷歌搜索一下这种设置的外观,但那里的信息很少。
我一直在考虑使用 设置表格liquibase-maven-plugin
,但我不知道这是否适用于r2dbc-h2
.
所以几个问题:
- 如何设置以便 liquibase 在迁移期间使用常规驱动程序,而应用程序的其余部分使用反应式驱动程序?
- 如果使用 maven 插件,这可以与 H2 一起使用还是我需要 postgres 作为 docker?
这对我来说是一个非常黑洞,有任何信息吗?
解决方案
我认为在应用程序中使用 2 个驱动程序应该没有问题。由于 liquibase 使用标准 jdbc 驱动程序,您可以将其配置为使用该驱动程序进行迁移并配置 r2dbc 以运行应用程序。也许需要完成一些 tweeks 但我会从以下内容开始:
spring:
liquibase:
url: jdbc:postgresql://localhost:5432/mydb
user: postgres
r2dbc:
url: r2dbc:postgresql://localhost:5432/mydb
username: postgres
并包括两个库:
io.r2dbc:r2dbc-postgresql
org.postgresql:postgresql
如果有错误,请让我们发布。
注意:对于测试,您也可以使用 testcontainers 或嵌入式 postgresql
推荐阅读
- python - 作为测试的一部分,在 pandas 数据框中检查正确 dtype 的最佳方法是什么?
- haskell - 如何编译在 StateT monad 中使用镜头的 ghc-8.4.2 代码
- mysql - Mysql 查询 - GROUP BY 并显示最高的 COUNT(*)
- c# - 可为空的日期时间属性与其字段有什么区别?
- c# - 我想访问 uwp 中的资源
- xcode - 如何在 Xcode 中使用 configure 命令?
- php - Sum:两个不同的时间查询
- java - 使用 maven 启动应用程序时如何解决“找不到工件 javax.xml.ws:WebServiceContext”错误?
- azure - Blob 存储 ID 无法通过 Azure 函数插入到 Azure SQL 数据库
- javascript - Javascript 下拉按钮