4

私のコンピューターでローカルにホストされているウェブサイトとそのウェブサイトのデータベース(開発用)と別のデータベースがホストされているとします(本番用)...つまり、最初にdev dbで変更を行い、次にprodに変更を加えますDB。

ローカル データベースで行った変更をホストされたデータベースに転送する最良の方法は何ですか?

問題があれば、MS Sql Server (2008) を使用しています

4

5 に答える 5

4

Visual Studio と SQL Server でこれを行う正しい方法は、データベース プロジェクトを Web アプリ ソリューションに追加することです。データベース プロジェクトには、必要なすべてのテーブル、プロシージャ ユーザー、およびロールと共に、新しいサーバー上でデータベース全体を完全に再作成できる SQL ファイルが必要です。

そうすれば、残りのすべてのコードのソース管理にも含まれます。

Database Project にはChangesサブフォルダーがあり、ここに SQL ファイルを配置して、後続のバージョンのデータベースに新しい変更や追加を適用します。

ファイル内の SQL は、適切な「存在する場合」ブロックを使用して記述し、更新済みのデータベースでエラーなく複数回安全に実行できるようにする必要があります。

原則として、データベースで直接変更を行うべきではありません。代わりに、プロジェクト内の SQL スクリプトを変更してデータベースに適用し、ソース コード (SQL ファイル) が常に最新であることを確認してください。

于 2009-07-04T15:15:41.153 に答える
1

(Ruby on) Rails の世界では、各ポイントで DB 構造に加えた変更をキャプチャする「移行」を記述することでこれを行います。これらは移行ツール (rake のタスク) で実行され、DB テーブルにも書き込まれるため、特定の移行が実行されたかどうかがわかります。

開発プラットフォーム (.Net?) 用にこのような構造を作成することもできますが、この質問に対する他の回答では、開発プラットフォームまたは特定の DB でデータベースのバージョン管理を処理するための利用可能なツールが提案されると思います。

私はこれらのどれも知りませんが、このリストをチェックしてください。有料のものもたくさんありますが、無料のものもあるはずです。これもチェックしてください

于 2009-07-04T15:01:57.860 に答える
1

開発者が変更をテスト/検証したときに、開発者が作成した変更スクリプトを使用して変更を移行します。(大きなデータの移動は例外です。) すべてのスクリプトはソース管理システムに保存されます。DBA が検証できます。

これは手作業であり、時には時間がかかりますが、効果的で安全かつ管理されたプロセスです。

データベースは非常に重要であり、dev からコピーすることはできません。

これらのスクリプトの作成/検証に役立つツールがあります。http://www.red-gate.com/を参照してください。 私は彼らのツールを使用して 2 つのデータベースを比較し、スクリプトを作成しました。ブライアン

于 2009-07-04T15:05:29.303 に答える
1

変更が小さい場合は、手動で行うこともあります。より大きな変更については、Red Gateの SQL Compare を使用して変更スクリプトを生成します。これらは手動で検証され、最初に QA 環境で実行されて、何も壊れていないことが確認されます。大規模な変更の場合、QA と本番の両方で変更を行う前に、特別なバックアップを実行します。

于 2009-07-04T15:51:21.933 に答える
0

Ron によって提供されたアプローチを使用していました。これは、専任の DBA チームがいる大規模なプロジェクトにとって理にかなっています。しかし、DB 専用のコードを作成する専任の開発者がいない場合、このアプローチは時間とリソースのコストがかかります。

RedGate DB 比較を使用するアプローチも良くありません。まだ多くの手動作業を行う必要があり、誤っていくつかのステップをスキップする可能性があります

もっと良いものが必要です。これが、 「Agile DB Recreation/Import/Reverse/Export ツール」を作成した理由です 。このツールは無料です。

利点: 開発者は好みのツールを使用して DEV DB を開発できます。次に、DB RIRE を実行し、リバースエンジニアリング DB (テーブル、ビュー、ストア プロシージャなど) を作成し、データを XML ファイルにエクスポートします。任意のコード リポジトリ システムに保持できる XML ファイル。

そして 2 番目のステップは、DB RIRE をもう一度実行して、XML ファイルと本番 DB の構造とデータの間の差分スクリプトを生成することです。

もちろん、必要に応じて何度でも繰り返すことができます。

于 2010-08-22T05:13:04.293 に答える