Phingのdbdeployタスクを使用して、PostgreSQLデータベースのバージョン管理を行います。これは全体として優れた作業方法です。データベースのバージョンを使い始めてからは、データベースに含まれるデータをどのように制御するのかという疑問を除けば、それほど問題はありません。
現在、私は通常、テストに使用されるいくつかのサンプルデータを含むデルタを持っていますが、実稼働環境では、実際の有効なデータのように実稼働データが必要です。もちろん、テストデータを切り捨てて実際のデータを挿入する別のデルタを作成することもできますが、デルタ内の唯一の言語はSQLであるため、どういうわけかそれは不格好で扱いにくいと感じます。このようなデルタを作成する場合、シーケンスを処理し、外部キーの関係が正しいことを確認するのは非常に困難です。
そのため、たとえばCSVファイルからデータをインポートするPHPスクリプトを作成するのが理にかなっていると思いました。これは、列の名前を変更する別のデータベース変更が行われるまでは実際に機能し、PHPファイルが使用できなくなります。もちろん、これは、データベースの変更を組み込むようにスクリプトを更新し、スクリプトを再実行することで簡単に修正できますが、エラーが発生しやすいため、最初にdbdeployを使用し始めました。
だから、私の質問は; 変更をデプロイする際にデータをどのように処理しますか、より正確には、本番環境に必要なデータをどのように挿入しますか?