2010-12-07 6 views
2

私はスクリプトを作成する方法を知っていますが、WindowsアプリケーションまたはWebアプリケーション内でこれらのスクリプトを実装する方法を知っていますか? Webアプリケーションを中心にWindowsとWeb Appでデータベースのアップグレードを処理する最善の方法は何ですか?

、私はすべてのようなフォルダにスクリプトをアップグレードしている:\ \のupgrade_1.4.99.sqlをインストール 、upgrade_1.4.101.sqlなど

C#のコードは、C#のバージョンと現在のコードのデータベースのバージョンをチェック各SQLスクリプトを順番にループしてスクリプトを実行します。

ユーザーが管理者でない場合は、アップグレードが差し迫っていることを示す適切なメッセージを表示します。類似のもの(ユーザーをログアウトします)。管理者(私たち)はウェブページをアップグレードするようにリダイレクトされ、各スクリプトの失敗または成功を表示するスクリプトを実行します。失敗は、SQLトランザクションをロールバックします。

私たちは基本的に1つのWebアプリケーションのいくつかのインスタンスを持っており、私たちが管理する手動アップグレードに不満を抱いています。

最も顕著な問題は、データのアップグレード...常に静的データ(設定の設定など)のような重要なデータ転送が欠落していたことです。そこで、RedGateをスキーマとデータのアップグレードスクリプトとして使用します。

これは、ウェブサイトをアップグレードする上で私の方法でこれを行う方法ですか? Windowsアプリケーションで同じプロセスを想定することはできますか?

また、私はスクリプトファイルを読む私の方法を改善できると確信しています。我々は、単にSQLファイルの各テキスト行を読み、 "GO"を待って、この文字列を配列に保存してからすべて処理します。 (私はこのコードを書かなかった)。プロセスには1つの大きなBeginとCommit Transが含まれていますが、これが正しいかどうかはわかりません。

ご質問が多すぎる場合はご存じでしょうか。

+0

はどのようにあなたのプロセスは、右のスクリプトがデータベースに対して実行されていることを確認しますか?誰かにあなたのデータベースにバージョン番号を付けるのですか? –

答えて

1

あなたが実際にSQL Serverに対して一度に全体のバッチスクリプトを実行することができます

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/43e8bc3a-1132-453b-b950-09427e970f31

限り何自動化された方法の任意の並べ替えで更新を実行するための最良の方法として?私はそれを行うためのいずれかの素晴らしい方法があるとは思わない。それはあなたのシステムに最も適したものです。これは言うまでもなく、可能な限り別の環境でスクリプトをテストするようにしてください。

HTH、 ブライアン

+0

私はそのウェブページを見ました。あなたが言ったように、それは私が不確実な更新プログラムを実行するための最良の方法ですか?私はサーバーオブジェクトを作成し、このメソッドを使ってすべてのスクリプトを実行しますか? – Rob

+0

個人的に私はいつもバージョンごとに1つのスクリプトを持っているファンでした。更新版が複数のバージョンを通過する場合は、各スクリプトを1つずつ実行するか、またはそれらをまとめて一度に実行します。それらを個別に実行すると、エラーが発生した場合は、どのバージョンのスクリプトがエラーを起こしているかを知ることができます。 –

関連する問題