重い開発の時代には、データベーススキーマは急速かつ継続的に変化し、ベータビルドへの毎週のプッシュが来るまでに、スキーマは大きく変化したため、唯一可能な賢明なオプションは、可能な限りすべてのテーブルを破棄することですdevデータベースから新しいバージョンをコピーします。明らかに、これは起動後は機能しません。プロダクションデータの削除は災害のレシピであるため、あるバージョン/リビジョンから別のバージョン/データベーススキーマへの変更を管理するための戦略はどこにあるのでしょうか。
私が見つけたまたは経験したもの:
- あるデータベースから別のデータベースへの直接的な核ダンプ(今私がやっていること)
- スクリプトまたは手動で実行されるSQLステートメントを含むUPDATE.sqlファイルを維持します。
- アクティブなデータベースで対応する「db-schema-version」値を持つupdate.phpファイルを維持する
3番目のオプションは最も賢明な方法のようですが、不完全に構築されたSQLクエリがスクリプトの途中で失敗し、データベースが半分更新された状態のままになり、バックアップの復元が必要になる可能性がまだあります。
それは問題ではないように見えますが、チームとしてphpMyAdminを使用しているため、実際に実行されます。実行されたSQLステートメントをコピーしてupdate.phpファイルに貼り付けることを忘れないでください。別のページに移動したら、SQLステートメントを手動で書き直すか、変更を元に戻して再度実行する必要があります。
私が望んでいるのは、確立された開発ワークフローに影響を与えないソリューションですか?
update.php
またはupdate.sql
ファイルをテストしますか?また、PHPMyAdminは、スクリプトなどで発生する可能性のある問題のせいにされています。おそらく、今度は別の優れたツールを検討するときでしょうか。