目前可能无法实现,但如果有人遇到同样的问题,您是如何处理的?
是否可以同时在多台服务器上运行迁移,而无需多次运行相同的脚本?
我遇到的问题是我们使用多台服务器,并且每次部署新版本的APP时都会运行迁移。这会导致相同的迁移脚本多次运行(取决于运行它的服务器数量)。
有没有办法检查迁移是否正在进行中,如果是,请跳过它,或者这是我需要手动实现的内容?
非常感谢。
答案 0 :(得分:0)
This sounds like something you would need to implement manually.
I suggest having a script that executes once when you deploy your app that SSH into one of your servers and executes the migration.
答案 1 :(得分:0)
我建议使用Ansible编写一个剧本来处理这个问题,同时调用所有相关的Hosts(库存)。
最终结果将是(例如):
如果你只想在单个(或......的子集列表)上运行:
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