Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Dns 使用wildfly上的flyway AS(域模式)控件进行数据库迁移_Dns_Wildfly_Flyway - Fatal编程技术网

Dns 使用wildfly上的flyway AS(域模式)控件进行数据库迁移

Dns 使用wildfly上的flyway AS(域模式)控件进行数据库迁移,dns,wildfly,flyway,Dns,Wildfly,Flyway,在我的示例应用程序中,war文件中有5个SQL迁移脚本。 我正在将war文件部署到由两个服务器/实例组成的主服务器组上的wildfly 8.2中。 flyway.migrate在应用程序的@PostConstruct部署期间被调用。 观察到的问题是,迁移是在两个实例上并行启动的。观察到控制的变化: 例如: SQL脚本1由实例1应用 SQL脚本2由instance2应用 SQL脚本3由实例1应用 SQL脚本4由实例2应用 SQL脚本5由实例1应用 我希望有一个控件:例如在instance1上应用所

在我的示例应用程序中,war文件中有5个SQL迁移脚本。 我正在将war文件部署到由两个服务器/实例组成的主服务器组上的wildfly 8.2中。 flyway.migrate在应用程序的@PostConstruct部署期间被调用。 观察到的问题是,迁移是在两个实例上并行启动的。观察到控制的变化:

例如:

SQL脚本1由实例1应用 SQL脚本2由instance2应用 SQL脚本3由实例1应用 SQL脚本4由实例2应用 SQL脚本5由实例1应用 我希望有一个控件:例如在instance1上应用所有SQL脚本,并让instance2等待DB迁移完成

我能轻松做到这一点吗? 我是否需要一些锁,例如DB中的条目,它将阻止竞争条件


谢谢。

为什么当前行为有问题?我认为这是迁移成功的更高风险,尤其是在多个物理节点上部署WAR文件的情况下。我发现有一个潜在的问题,即每个正在迁移的实例都必须评估迁移状态,即已经应用了多少脚本。如果迁移将由单个实例控制,那么迁移可以由该实例一次性完成。在实践中,到目前为止,这两个实例都不是问题。。。