2

Phingのdbdeployタスクを使用して、PostgreSQLデータベースのバージョン管理を行います。これは全体として優れた作業方法です。データベースのバージョンを使い始めてからは、データベースに含まれるデータをどのように制御するのかという疑問を除けば、それほど問題はありません。

現在、私は通常、テストに使用されるいくつかのサンプルデータを含むデルタを持っていますが、実稼働環境では、実際の有効なデータのように実稼働データが必要です。もちろん、テストデータを切り捨てて実際のデータを挿入する別のデルタを作成することもできますが、デルタ内の唯一の言語はSQLであるため、どういうわけかそれは不格好で扱いにくいと感じます。このようなデルタを作成する場合、シーケンスを処理し、外部キーの関係が正しいことを確認するのは非常に困難です。

そのため、たとえばCSVファイルからデータをインポートするPHPスクリプトを作成するのが理にかなっていると思いました。これは、列の名前を変更する別のデータベース変更が行われるまでは実際に機能し、PHPファイルが使用できなくなります。もちろん、これは、データベースの変更を組み込むようにスクリプトを更新し、スクリプトを再実行することで簡単に修正できますが、エラーが発生しやすいため、最初にdbdeployを使用し始めました。

だから、私の質問は; 変更をデプロイする際にデータをどのように処理しますか、より正確には、本番環境に必要なデータをどのように挿入しますか?

4

1 に答える 1

1

運用システムでテストを行うべきではないのと同じように、テスト データをデルタから除外する必要があるのは正しいことです。テストには何を使用しますか? Phpunit、セレン、...? PHPフレームワークを使用していますか?

とにかく、最善の方法は、たまたま使用しているツールに付属している可能性のあるものを使用することです。たとえば、Symfony 1.x のフィクスチャ管理は非常に優れています。PHP コードをテストする場合、PHPUnit はデファクト スタンダードであり、いくつかのフィクスチャ管理が付属しています。データセットの処理方法の詳細については、PHPUnit のドキュメントを参照してください: http://www.phpunit.de/manual/current/en/database.html#understanding-datasets-and-datatables

于 2011-09-22T13:34:58.240 に答える