2017-06-12 2 views
0

これは現時点では不可能かもしれませんが、誰かが同じ問題を抱えていたら、どうやってそれを処理しましたか?Doctrine Migrations Bundle - 複数のサーバーで同時に移行を実行する方法は?

同じスクリプトを複数回実行することなく、複数のサーバーで同時に移行を実行することはできますか?

問題は私たちが複数のサーバーを使用しており、私たちがAPPの新しいバージョンを配備するたびに移行を実行していることです。これにより、同じマイグレーション・スクリプトが複数回実行されます(実行しているサーバーの数によって異なります)。

移行が進行中であるかどうかを確認する方法はありますか?そうであれば、それをスキップするか、手動で実装する必要がありますか?

多くのありがとうございます。

答えて

0

これは、手動で実装する必要があるようです。

あなたのサーバーの1つにSSHをインストールし、移行を実行するアプリケーションを展開するときに一度実行するスクリプトを作成することをお勧めします。

0

対応するすべてのHosts(インベントリ)を呼び出しながら、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 
関連する問題