原则迁移捆绑包 - 如何同时在多个服务器上运行迁移


目前

可能是不可能的,但如果有人遇到同样的问题,你是如何处理的?

是否可以同时在多台服务器上运行迁移,而无需多次运行相同的脚本?

我遇到的问题是我们使用多个服务器,每次我们部署新版本的应用程序时,它们都会运行迁移。这会导致相同的迁移脚本被多次运行(取决于运行它的服务器数量(。

有没有办法检查迁移是否正在进行中,如果是,请跳过它,或者这是我需要手动实现的东西?

非常感谢。

这听起来像是您需要手动实现的东西。

我建议有一个脚本,当您将 SSH 应用程序部署到您的一台服务器并执行迁移时,该脚本执行一次。

我建议使用 Ansible 编写一个剧本来处理这个问题,同时调用所有相关的主机(清单(。

最终结果将是这样的(例如(:

如果您只想在单个(或子集列表..(上运行:

ansible-playbook --limit YOUR_INVENTORY_NAME run-migrations.yml

或者,对于定义中的所有它们:

ansible-playbook run-migrations.yml

您在 Ansible 中的实际剧本如下所示:

- name: Run Migrations
  command: php bin/console doctrine:migrations:migrate
  args:
    chdir: /path/to/symfony

相关内容

  • 没有找到相关文章

最新更新