開発 DB から運用 DB への変更の転送
-
22-08-2019 - |
質問
私のコンピューター上でローカルにホストされている Web サイトとその Web サイトのデータベース (開発用) と、別のデータベース (運用用) がホストされているとします。つまり、最初に開発データベースに変更を加え、次に本番環境に変更を加えます。 DB。
ローカル データベースで行った変更をホストされたデータベースに転送する最良の方法は何ですか?
それが重要であれば、私は MS SQL Server (2008) を使用しています。
解決
Visual StudioとSQL Serverとのこれを行うための正しい方法は、Webアプリケーション・ソリューションへのデータベースのプロジェクトを追加することです。データベースプロジェクトは、すべての必要なテーブル、プロシージャのユーザーとロールと一緒に、新しいサーバー上で完全にデータベース全体を再作成することができますSQLファイルを持っている必要があります。
そのように、彼らは同様に、コードのすべての残りのソースコントロールに含まれています。
を変更し、私はそれ以降のバージョンのデータベースに新しい変更や追加を適用するSQLファイルを置くデータベースプロジェクトでののサブフォルダがあります。
それがエラーなしですでに更新されたデータベース上で安全に複数回実行することができます。そのようなブロックを「存在する場合は」ファイル内のSQLは、適切に記述する必要があります
原則として、あなたは、データベースに直接変更を加えてはいけません - 代わりにソースコード(SQLファイル)が常に最新であることを確認するために、プロジェクトでSQLスクリプトを修正し、それをデータベースに適用します<。 / P>
他のヒント
私たちは(ルビー上)でこれを行う「マイグレーション、」キャプチャあなたは、各時点でDB構造に加えた変更を書き込むことによって、世界をレール。これらは、それが特定の移行が実行されているか否かを知っているように、また、DBテーブルへの書き込み移行ツール(レーキ用タスク)で実行されます。
あなたは(.NET?)あなたのdevのプラットフォームのために、このような構造を作ることができるが、私はこの質問への他の回答に人々があなたの開発プラットフォームで、データベースのバージョン管理を処理するための、または多分あなたの特定のDBのための利用可能なツールを提案することを考えますます。
私は、これらのいずれかを知っているが、このリストをチェックしません。私はそこに有料たくさんのことを見ますが、無料のものが存在する必要があります。また、 に、これをチェックしてください。
私は彼らの変化を検証/テストした際に、開発者によって書かれた変更スクリプトを経由して変更を移行します。 (例外は、大規模なデータを移動されている。)すべてのスクリプトは、ソース制御システムに格納されています。およびデータベース管理者によって確認することができます。
これは、いつか時間がかかるが、効果的で、安全でコントロールさプロセスマニュアルです。
データベースがDEVからコピーするにはあまりにも不可欠です。
これらのスクリプトを確認/作成を支援するツールがあります。 http://www.red-gate.com/ を参照してください。 私は、スクリプトを作成するために、2つのデータベースを比較するために、彼らのツールを使用していました。 ブライアン
、私は時々手でそれらを作ります。より大きな変化のために、私が使用してレッドゲートするのSQLを生成するのに比較しますスクリプトを変更します。これらは、手検証であり、彼らが何かを壊さないことを確認するために最初のQA環境で実行します。大きな変化のために、我々は、QA中と生産の両方の変更を行う前に、特別なバックアップを実行します。
以前は Ron が提供したアプローチを使用していました。これは、DBA の専任チームがいる大規模なプロジェクトにとっては理にかなっています。ただし、DB 専用のコードを作成する専任の開発者がいない場合は、 このアプローチには時間とリソースがかかります.
RedGate DB比較を使用するアプローチも良くありません。 まだ多くの手作業が必要なので、誤っていくつかのステップをスキップする可能性があります.
もっと良いものが必要です。これが私たちが 「アジャイルDB再作成・インポート・リバース・エクスポートツール」ツールは無料です。
利点:開発者は好みのツールを使用して DEV DB を開発します。次に、DB RIRE を実行し、リバースエンジニアリング DB (テーブル、ビュー、ストア プロシージャなど) を作成し、データを XML ファイルにエクスポートします。XML ファイルは、任意のコード リポジトリ システムに保存できます。
2 番目のステップでは、DB RIRE をもう一度実行して、XML ファイルと実稼働 DB の構造とデータの間の差異スクリプトを生成します。
もちろん、必要なだけ繰り返しを行うことができます。