Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flyway-1.7:处理分支的变通方法?(飞行路线第138期)_Flyway - Fatal编程技术网

Flyway-1.7:处理分支的变通方法?(飞行路线第138期)

Flyway-1.7:处理分支的变通方法?(飞行路线第138期),flyway,Flyway,是一个非常好的自动化数据库更新(也称为迁移)的工具。但是,从版本1.7开始,它依赖于一个完全线性的迁移序列。如果你有一个生产系统,你必须在开发新产品的同时提供修复,那么这个假设就立即无效了。常见问题解答指出,这对于生产系统本身来说不是问题,但是如果开发分支上已有开发和/或QA系统,则需要从带外生产版本的修复程序运行迁移 允许此操作的解决方案正在等待,但尚未完成。因为这几乎是一个致命的问题:如果我现在就想使用它,有没有聪明的解决办法?我推荐的方法(在连续交付/部署环境中几乎是必不可少的)是使用特性

是一个非常好的自动化数据库更新(也称为迁移)的工具。但是,从版本1.7开始,它依赖于一个完全线性的迁移序列。如果你有一个生产系统,你必须在开发新产品的同时提供修复,那么这个假设就立即无效了。常见问题解答指出,这对于生产系统本身来说不是问题,但是如果开发分支上已有开发和/或QA系统,则需要从带外生产版本的修复程序运行迁移

允许此操作的解决方案正在等待,但尚未完成。因为这几乎是一个致命的问题:如果我现在就想使用它,有没有聪明的解决办法?

我推荐的方法(在连续交付/部署环境中几乎是必不可少的)是使用特性切换和从头发布,而不是使用特性或发布分支。然后再将其与向后兼容迁移结合起来,以完全缓解此问题

如果出于某种原因,这不是你的选择,你不必等待太久。
Flyway 1.8(将包括138的修复程序)将很快推出。

自Flyway 2.0版以来,该问题已过时:如果设置标志,Flyway还将使用尚未应用的早期版本号执行迁移。但是,您需要确保这种带外迁移可以以任何顺序应用于以后的迁移,否则您将遇到严重的麻烦

使用Flyway-1.7,您可以进行以下变通。如果您有一个开发分支和一个生产分支,那么您可以拥有flyway的单独实例,包括生产分支和开发分支的单独元数据表(例如,SCHEMA_HISTORY和SCHEMA_HISTORY_DEV)。在生产服务器上,只有SCHEMA_历史记录,您可以照常工作;对于开发服务器,两者都有,每次运行flyway时,首先在具有SCHEMA_HISTORY的生产分支sqls上运行它,然后在具有SCHEMA_HISTORY_DEV的开发分支sqls上运行它


切换分支时,必须将SCHEMA_HISTORY_DEV合并到SCHEMA_HISTORY中。(您需要排除初始版本并在SCHEMA_HISTORY上重置当前版本。)当flyway-1.8发布时,您可以进行此合并并丢弃SCHEMA_HISTORY_DEV。

谢谢,但这种方法在您每年发布2-3个版本时不起作用,可能大多数项目都会这样做。所以我只好等了-(