2017-06-12 23 views
0

目前這可能是不可能的,但如果任何人有同樣的問題,你是如何處理它的?Doctrine Migrations Bundle - 如何同時在多臺服務器上運行遷移?

是否有可能運行在同一時間多個服務器上遷移,而不多次運行相同的腳本?

我遇到的問題是,我們使用多臺服務器和它們運行的​​遷移每次我們部署我們的應用程序的新版本時。這會導致相同的遷移腳本多次運行(取決於運行它的服務器數量)。

有沒有一種方法來檢查遷移是否在進行中,如果是,跳過它,或者這是我需要手動執行?

非常感謝。

回答

0

這聽起來像你需要手動執行。

我建議有,當你部署的應用程序,SSH到你的服務器中的一個,並執行遷移執行一次的腳本。

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 
相關問題