目前這可能是不可能的,但如果任何人有同樣的問題,你是如何處理它的?Doctrine Migrations Bundle - 如何同時在多臺服務器上運行遷移?
是否有可能運行在同一時間多個服務器上遷移,而不多次運行相同的腳本?
我遇到的問題是,我們使用多臺服務器和它們運行的遷移每次我們部署我們的應用程序的新版本時。這會導致相同的遷移腳本多次運行(取決於運行它的服務器數量)。
有沒有一種方法來檢查遷移是否在進行中,如果是,跳過它,或者這是我需要手動執行?
非常感謝。
目前這可能是不可能的,但如果任何人有同樣的問題,你是如何處理它的?Doctrine Migrations Bundle - 如何同時在多臺服務器上運行遷移?
是否有可能運行在同一時間多個服務器上遷移,而不多次運行相同的腳本?
我遇到的問題是,我們使用多臺服務器和它們運行的遷移每次我們部署我們的應用程序的新版本時。這會導致相同的遷移腳本多次運行(取決於運行它的服務器數量)。
有沒有一種方法來檢查遷移是否在進行中,如果是,跳過它,或者這是我需要手動執行?
非常感謝。
這聽起來像你需要手動執行。
我建議有,當你部署的應用程序,SSH到你的服務器中的一個,並執行遷移執行一次的腳本。
我會建議使用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