flyway - 一种分布式的方式?

Posted

技术标签:

【中文标题】flyway - 一种分布式的方式?【英文标题】:flyway - a way to do distributed? 【发布时间】:2013-05-04 05:34:19 【问题描述】:

flyway 为我节省了做一些基本事情的时间给我留下了深刻的印象:从头开始创建架构,并将其更新到特定版本。

每当发生任何不寻常的事情时,我都会感到有些沮丧:我有一个特定于客户的视图,需要应用于某些架构;我有一个分支版本,其中包含一些基本版本没有的脚本;我想在多个模式上运行相同的 flyway 安装。

在所有这些情况下,我发现自己手动移动 .sql 文件以尝试做不同的事情;这非常容易出错,并且 flyway 对模式历史中的任何变化都没有任何宽恕。 (这让我对将 flyway 用于生产模式感到有些不安,但这是另一个话题。

似乎数据库版本控制终于在 2000 年左右赶上了代码版本控制:您可以进行一行更改,而且效果很好。但就像 DVCS 扩展了您可以通过实验和分支做的事情一样,数据库版本控制也需要以这种方式进行。

这是 flyway 正在考虑、正在努力或有办法做到的事情吗?

【问题讨论】:

【参考方案1】:

您不能只维护一个视图,而是为每个客户实现功能切换吗?这样,您可以维护一个模式和所有自定义视图,但将逻辑分解为“功能”。然后在属性文件或数据库表中查找功能的切换(true/false)以确定如何加入或构建 SQL。

【讨论】:

不能解决我的问题,但谢谢,有趣的想法。

以上是关于flyway - 一种分布式的方式?的主要内容,如果未能解决你的问题,请参考以下文章

企业分布式微服务云SpringCloud SpringBoot mybatis (十五)Spring Boot中使用Flyway来管理数据库版本

Flyway详解以及Springboot集成Flyway(转)

Flyway详解以及Springboot集成Flyway, 数据库脚本版本管理

分布式事务的一种实现方式:状态流转

基于redis和zookeeper的分布式锁实现方式

一阶段提交分布式事务管理方式