首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R2DBC迁移数据库

用R2DBC迁移数据库
EN

Stack Overflow用户
提问于 2019-07-24 12:38:57
回答 6查看 5.1K关注 0票数 9

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

Liquibase & Flyway似乎依赖于JDBC。是否有计划允许这些框架支持r2dbc驱动程序?

欢迎任何意见或反馈。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-07-26 07:52:58

史蒂夫的回答是正确的,R2DBC主要是关于与实际数据的交互。我想增加一个不同的视角。

确实,在迁移过程中,反应性API没有提供任何改进。事实上,仔细观察,迁移是启动过程的一部分,它通常是同步的,至少在某种程度上是同步的。

在这样的应用程序安排中,要求JDBC进行迁移增加了复杂性。您需要将JDBC驱动程序包含到现有的R2DBC设置中,并且需要配置指向与R2DBC相同的数据库的另一个数据库连接。这两个需求都很容易出错,因为它们需要被配置来完成完全相同的事情。

现在,应用程序配置框架(Spring、Micronaut、Quarkus)会在类路径中提供某个库时激活功能。拥有JDBC驱动程序配置的引导功能并不是应用程序所需要的,而是在引导过程中需要的,这在某种程度上是资源的浪费。

理想情况下,您可以配置单个数据库连接技术,该技术可重用用于模式迁移和应用程序中以后的数据交互。

因此,要求液基立交桥提供基于R2DBC的集成是有意义的。

票数 16
EN

Stack Overflow用户

发布于 2020-04-03 14:41:25

你可以试试我的包裹R2dbc-迁移

在最小配置中(假设您正在使用SpringBoot2.3.0.M3),只需添加

代码语言:javascript
复制
<dependency>
  <groupId>name.nkonev.r2dbc-migrate</groupId>
  <artifactId>r2dbc-migrate-spring-boot-starter</artifactId>
  <version>0.0.24</version>
</dependency>

转到pom.xml

然后在类路径中添加.sql文件,例如在/db/migration/

然后添加

代码语言:javascript
复制
r2dbc.migrate.resourcesPath: classpath:/db/migration/*.sql

给你的application.yml

票数 5
EN

Stack Overflow用户

发布于 2019-07-24 13:39:59

在我看来,R2DBC的目标与迁移并没有任何关系(诚然,粗略地看了一下R2DBC网页的头版)。该页面列出了主要功能如下:

  • Reactive - R2DBC是建立在反应流之上的,它提供了一个完全反应的、无阻塞的API.
  • 关系数据库-- R2DBC将SQL数据库与反应性API连接起来,这与JDBC的阻塞特性是不可能的。
  • 可扩展的解决方案-反应性流使每个连接方法从经典的一个线程转移到更强大、更可伸缩的方法。

没有任何东西值得在像Liquibase这样的框架中添加R2DBC支持。目前正在使用的JDBC驱动程序不需要使用非阻塞API,也不需要真正的“反应性API",而且几乎可以肯定,每个连接不需要多个线程。

迁移工具主要关注数据库的形状/结构,而不是内容,而R2DBC的目标是主要关注实际数据的应用程序。

总之,我不认为有人会因为应用程序使用R2DBC而不使用像Liquibase这样的迁移工具,我也不认为向Liquibase这样的工具添加R2DBC支持有什么好处。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57183169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档