bal*_*teo 2 java database-migration liquibase flyway r2dbc
我是R2DBC的新手(https://r2dbc.io/)。我想知道r2dbc的生态系统是否具有数据库迁移工具/框架。
看来Liquibase和Flyway依赖JDBC。是否有计划允许那些框架支持r2dbc驱动程序?
欢迎任何意见或反馈。
史蒂夫的答案是正确的,R2DBC主要是与实际数据进行交互。我想添加一个不同的观点。
的确,反应式API不会在迁移期间提供任何改进。实际上,仔细观察,迁移是启动过程的一部分,该过程通常是同步的,至少在某种程度上是同步的。
需要JDBC进行迁移会增加这种应用程序安排的复杂性。您需要在现有R2DBC设置中包括JDBC驱动程序,并且需要配置另一个数据库连接,该连接指向与R2DBC相同的数据库。这两个要求都容易出错,因为需要对其进行配置以执行完全相同的操作。
如今,当类路径中有某个库可用时,应用程序配置框架(Spring Boot,Micronaut,Quarkus)会激活功能。配置JDBC驱动程序会引导应用程序不需要的功能,但在引导过程中将需要该功能,这会浪费资源。
理想情况下,您配置一种数据库连接技术,该技术可用于架构迁移和应用程序内部的后续数据交互。
因此它是有道理的问Liquibase和迁飞提供基于R2DBC整合。
小智 5
您可以尝试我的包r2dbc-migrate。
在最小配置中(假设您使用的是 Spring Boot 2.3.0.M3),只需添加
<dependency>
<groupId>name.nkonev.r2dbc-migrate</groupId>
<artifactId>r2dbc-migrate-spring-boot-starter</artifactId>
<version>0.0.24</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
到 pom.xml
然后在类路径中添加 .sql 文件,例如/db/migration/
然后加
r2dbc.migrate.resourcesPath: classpath:/db/migration/*.sql
Run Code Online (Sandbox Code Playgroud)
到您的应用程序.yml