0

現在、自動ビルド中にデータベース プロジェクトを使用して、テスト データベースと開発データベースがソース コードと同期していることを確認しています。

パブリッシュ プロファイル中に、現在使用しているワークフローでは完全にカバーされていない問題に気付き、これを管理する最善の方法に関心があります。

問題:

データベース スキーマを作り直し、テーブル ( ) の列 ( name) をuser新しいテーブル ( userdetail) に移動する必要があると判断しました。新しいテーブルには、 table の列userdetailの既存のコンテンツが必要ですが、テーブル user からも列を削除したいと考えています。データベース プロジェクトが最新であることを確認します。nameusername

問題は、userdetail展開前にテーブルにデータを入力しようとすると、userdetailテーブルが存在しないことです。でテーブルを作成できますpre-deployが、デプロイ中に db プロジェクトが再度テーブルを作成しようとして失敗します。userdetailデプロイ後にデータを入力しようとすると、name列が削除されており、これを使用してデータを入力することはできませんuserdetail

現在、私が見ることができる2つの可能な解決策があります。

考えられる解決策 1

nameテーブルに列を残しuserます。これは、実行のポピュuserdetailsレーションに問題がないことを意味しますが、デプロイ後に列を手動で削除する必要があり、エラーが発生しやすくなります。

考えられる解決策 2

一時テーブルを作成してデプロイ前の情報を取得し、userデプロイ後のスクリプトで使用するために保存します。デプロイ後の一時テーブルを削除します。

現時点ではオプション 2 が最適に思えますが、この方法でデータを手動で保存して後で使用する必要があるのは面倒です。この不測の事態に対応するための推奨される方法はありますか?

4

1 に答える 1