6

Webアプリ用のデータベースプロジェクトがあり、現在、展開中にデータ損失が発生する可能性がある場合に失敗するように構成されています。私はこのように安全だと感じています。しかし、私は問題に遭遇しました。実際には、データが失われる可能性がある場合に変更を展開する必要があります。つまり、実際には何も削除されない列の長さを短くしますが、システムは削除すると考えます。

2つの質問があります。

1つ目はこれです:キャッチオールゴーまたはノーゴーを有効または無効にする以外に、このプロセスをよりきめ細かく制御する方法はありますか?つまり、削除または短縮してもよい列を指定しますか?このプロセスをよりきめ細かく制御する方法はありますか?

2つ目は、これらの状況にどのように対処するかです。当初は、展開前のスクリプトを追加して列を削除するだけで十分だと思っていましたが、これらのファイルでも削除などが発生するようです。

4

3 に答える 3

2
  1. 残念ながら、より詳細な方法でそれを制御する方法はありません。
  2. データ損失の原因となる何かを展開することがわかっている場合は、それを無効にしますが、それが必要です。その後、再度有効にします。また、本番環境にデプロイするときに出てくる変更スクリプトを常にチェックしていました。
于 2011-04-22T15:19:53.667 に答える
0

デプロイ前のスクリプトの列を切り捨てる長さに更新するだけですか?

例:私の列を20に切り捨てる:

UPDATE mycol = LEFT(mycol, 20)
FROM mytable
WHERE mycol != LEFT(mycol, 20)
于 2011-05-10T11:46:43.160 に答える
0

Microsoft のガイダンスでは、展開前にデータを一時テーブルに移動し、展開エンジンにチェックを実行させて、テーブルに行が含まれているかどうかを確認し (現在は空であるため、これはパスします)、スキーマをアップグレードし、展開後のスクリプトにデータを戻します。

詳細については、この件に関するバークレイ ヒルズの投稿を参照してください。

于 2013-02-27T17:34:08.217 に答える