現在、Phingをデプロイに使用しており、dbdeployを使用してデータベースの変更を適用しています。しかし、デプロイメント時には、オブジェクトモデルによって処理される方が良い場合があり、展開後に手動で実行しているPHPスクリプトを1回書いています。デプロイ時にスクリプトを1回実行する
実行中のスクリプトを処理するdbdeployに似た既存のソリューションがありますか?さらに重要なのは、実行されたスクリプトを追跡して各スクリプトが1回だけ実行するようにすることです。
現在、Phingをデプロイに使用しており、dbdeployを使用してデータベースの変更を適用しています。しかし、デプロイメント時には、オブジェクトモデルによって処理される方が良い場合があり、展開後に手動で実行しているPHPスクリプトを1回書いています。デプロイ時にスクリプトを1回実行する
実行中のスクリプトを処理するdbdeployに似た既存のソリューションがありますか?さらに重要なのは、実行されたスクリプトを追跡して各スクリプトが1回だけ実行するようにすることです。
これは潜在的に他の人にも役立つと思います。あなたが他の解決策を考えることができない場合は、DBDeploy taskを実装するファイルを見て、それをカスタムタスクにコピーし、データベースチェック機能を再利用してください。SQLスクリプトを生成する代わりに、必要。
もしあなたがそれに満足しているなら、それをPhingに寄付することも考えられます。私は彼らがそれを含めて幸せになると確信しています(Phing-How To Contribute参照)。
方法について:
サウンドはハックのようですが、イージーウェイです。
dbdeployの動作の利点の1つは、変更を永久に保存し、実行したトラックを保存できることです。このようにして、すべての開発者が開発環境で実行するためのバージョンコントロールが存在します。たとえば、新しいデータベースから始め、dbdeployを実行して最新の状態にすることができます。私はこれを何度でも行うことができます。 –
Phing ExecTaskとおそらく最も簡単なのは、Phing User Guide (stable)も参照してください。
それは面白いです。何らかの理由で、私はその機能のほとんどがdbdeploy自体で処理されていると仮定しましたが、Phingタスクに組み込まれている "changelog"概念の良い部分のように見えます。他に何も存在しなければ、これは私たちに "あなた自身のロール"ソリューションを開始するのに最適な場所を与えるだろう。 –
はい、これはちょっと混乱するかもしれませんが、PHPのDBDeployは実際には純粋にPhingタスクとしてPHPに実装されたDBDeployの「アイデア」です。スクリプトは実際には非常に簡単なので、ニーズに合わせて変更するのは簡単です。がんばろう! – poisson