我正在使用Flyway部署到300!数据库。我所做的是创建了一个包含flyway命令的cmd文件 - 每个300个数据库都有1行。
像这样:
flyway -configFile = -url = migrate。
cmd文件中有300条这样的行,当执行顺序时它的工作效果很好 - 显然它也需要更多的时间。
如果我想在并行运行它,我必须在命令开头添加'start',如下所示:
启动flyway -configFile =< conf file path> -url =< DB URL>迁移
这种方法面临的问题是 - 在大约100个DB上迁移后,Microsoft-Windows-Resource-Exhaustion-Detector检测到低虚拟内存条件。现在我知道如何设置JVM内存并尝试了各种选项,但我认为它根本没有任何区别。我认为FlyWay完全忽略了JVM设置。
我在Windows服务器(6位)上有16GB物理内存,正在执行Flyway。 当并行运行发生时 - 我已经检查了任务管理器,并且使用量不超过3 GB。 JRE版本是64位。 我设置_Java_Options。 我也尝试在Java控制面板中设置JVM内存,但似乎没有任何工作。
谢谢
答案 0 :(得分:0)
您需要限制并行运行的迁移次数。根据您的描述,您似乎正在尝试运行300,这使用了太多RAM。并行尝试10并从那里开始工作。
对于基于Linux的方法,请参阅此问题Best strategy to run multiple flyway migration in parallel。使用git bash为windows安装git是一种方便的方法,可以让linux工具尝试这个。