目前这可能是不可能的,但如果有人遇到同样的问题,你是如何处理的?
是否可以同时在多个服务器上运行迁移而无需多次运行相同的脚本?
我遇到的问题是我们正在使用多个服务器,并且每次我们部署新版本的 APP 时它们都会运行迁移。这会导致相同的迁移脚本运行多次(取决于运行它的服务器数量)。
有没有办法检查迁移是否正在进行,如果是,跳过它或者这是我需要手动实现的?
非常感谢。
目前这可能是不可能的,但如果有人遇到同样的问题,你是如何处理的?
是否可以同时在多个服务器上运行迁移而无需多次运行相同的脚本?
我遇到的问题是我们正在使用多个服务器,并且每次我们部署新版本的 APP 时它们都会运行迁移。这会导致相同的迁移脚本运行多次(取决于运行它的服务器数量)。
有没有办法检查迁移是否正在进行,如果是,跳过它或者这是我需要手动实现的?
非常感谢。
这听起来像是您需要手动实现的东西。
我建议在您将 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