使用flyway在不同db之间迁移

Posted

技术标签:

【中文标题】使用flyway在不同db之间迁移【英文标题】:migration between different dbs using flyway 【发布时间】:2018-04-15 08:00:06 【问题描述】:

我们在组织中有不同的数据库,例如 MS SQL、Phoenix (HBase)、Redshift。 问题:是否可以使用 flyway 或其他工具在不同类型的数据库之间迁移。我的意思是,如果我们在 MS SQL 中有 Schema,那么轻松迁移到 RedShift 的方法是什么?如果架构已更改,是否支持为不同类型的数据库维护/升级架构。

谢谢 奥列格。

【问题讨论】:

【参考方案1】:

将数据迁移到 Redshift 需要特定于 Redshift 的不同模式。

您的源数据库 -> s3 csv(压缩),如果非常大,则拆分为块

s3 数据 -> 红移分期

redshift staging -> 目标 redshift 表

您还可以考虑 CDC 是否适用于您的用例。

我最近在 AWS DMS 上取得了很好的成功,它透明且自动地处理上述过程。它还可以在适用的情况下与 CDC 合作并支持许多来源。

它会自动创建目标表。如果愿意,您可以选择(手动)修改目标表。

MS SQL 可以用作源,但不知道如何使用 hbase 作为源。您可能必须先手动将其导出到 s3。

见https://aws.amazon.com/dms/

【讨论】:

谢谢,乔恩。我将看看 DMS 服务。在我们的例子中,它不仅仅是一个迁移数据库。这是一个涉及的ETL过程。此外,在这个过程中并不涉及唯一的红移。对于 HBase,我们使用的是 Phoenix,它是带有 JDBC 驱动程序的 SQL 皮肤,所以关系模型就位。问题是一样的,有没有办法在不同数据库之间迁移模式版本。示例 MS SQL 和 Phoenix。凤凰和红移。谢谢奥列格。

以上是关于使用flyway在不同db之间迁移的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 和 Gradle 运行 Flyway 迁移 - 无法解析位置类路径:db/migration

Flyway:在 [classpath:db/migration] 中找不到迁移位置

Flyway db 首先迁移 Dependent Jar - Spring boot

flyway 后的 Flyway 迁移错误:基线

Flyway:找不到迁移位置:[classpath:db / migration]

Flyway 在 sbt 中找不到我的迁移文件