我是R2DBC(https://r2dbc.io/)的新手。我想知道r2dbc的生态系统是否具有数据库迁移工具/框架。

看来Liquibase和Flyway依赖JDBC。是否有计划允许那些框架支持r2dbc驱动程序?

欢迎任何意见或反馈。

最佳答案

史蒂夫的答案是正确的。R2DBC主要是与实际数据进行交互。我想添加一个不同的观点。

的确,响应式(Reactive)API不会在迁移过程中提供任何改进。实际上,仔细观察,迁移是启动过程的一部分,该过程通常是同步的,至少在某种程度上是同步的。

需要JDBC进行迁移会增加这种应用程序安排的复杂性。您需要在现有R2DBC设置中包括JDBC驱动程序,并且需要配置另一个数据库连接,该连接指向与R2DBC相同的数据库。这两个要求都容易出错,因为需要对其进行配置以执行完全相同的操作。

如今,当类路径中有某个库可用时,应用程序配置框架(Spring Boot,Micronaut,Quarkus)会激活功能。配置JDBC驱动程序会引导应用程序不需要的功能,但在引导过程中将需要该功能,这会浪费资源。

理想情况下,您配置一种数据库连接技术,该技术可重复用于架构迁移和应用程序中的后续数据交互。

因此,要求LiquibaseFlyway提供基于R2DBC的集成是有意义的。

10-08 16:05