0

特定の列 C をテーブル A からテーブル B に削除するスキーマ変更スクリプトを作成しました。これが私のロジック/アルゴリズムです。

  1. 列 C がテーブル B にまだ存在しない場合は、追加します。
  2. 列 C がテーブル B に存在する場合、条件 A.columnZ(Primary_Key) = B.ColumnZ(Foreign_key) で、新しく追加された列の値 (最初は null) をテーブル A の対応する一致する値に更新します。
  3. テーブル A から列 C を削除します。

私は同じスクリプトを書きました(ただし、単純なものです)。現在、データベースの変更は非常に重要です。これは、本番データベースで実行され、列にユーザーの請求情報に関連する値が含まれているためです。展開に進む前に、それらを完全にテストしたいと考えています。

スクリプトを検証するためのテストケースの提案をしたいと思います。このスクリプトを作成するのはこれが初めてなので、変更スクリプトの作成中に発生する可能性のある問題に関するその他のアドバイスもいただければ幸いです。

4

1 に答える 1

1

データベース スクリプトのテストにはdbunitを使用します。これは非常に優れたツールですが、おそらく過度に Java 中心です。グーグルで他の言語の同様のツールを探すことができます。

個人的には、liquibaseを使用して、データベース スキーマへのすべての変更を管理しています。データベースを既知の状態にすることで、データベース移行の複雑さを大幅に軽減します。スキーマ全体が事実上リビジョン管理下にあるため、列が存在するかどうかをテストする必要はありません。データを破壊するデータベース リファクタリング アクションは、常にテストが難しいものです。liquibase のようなツールを使用する本当の利点は、本番環境のようなテスト システムのセットアップが簡単になることです。

于 2013-08-25T09:43:47.323 に答える