web-dev-qa-db-ja.com

開発データベースと本番データベースを同期する方法

2つのデータベースを同期するアプリケーションを知っていますか?開発中に、1つまたは2つのテーブル行または新しいテーブルまたは列を追加する必要がある場合があります。通常、私はすべてのsqlステートメントをいくつかのファイルに書き込み、パスのアップロード中に、本番データベースでそれらの行を作成します(以前にバックアップしました)。私はmySQLおよびpostreSQLデータベースを使用しています。

あなたの練習は何ですか、そしてどのアプリケーションがその中であなたを助けますか。

40
pbrodka

ツールまたはアプリケーションの回答を求めましたが、本当に必要なのはプロセスの回答です。ここでの基本的なテーマは、データベースのDDL(および必要に応じてDML)をバージョン管理し、データベースの任意のバージョンをより高いバージョンに更新できるように変更スクリプトを提供する必要があるということです。

ジェフ・アトウッドによって提供され、K。スコット・アレンによって書かれたこの一連のリンクは、これがどのように見えるべきかを詳細に説明しています-そして、私がここに書くことができるよりもうまくやっています: http://www.codinghorror。 com/blog/2008/02/get-your-database-under-version-control.html

28
whaley

RedGate SQLCompareへの別の投票

http://www.red-gate.com/products/SQL_Compare/index.htm

それなしでは生きたくない!

編集:申し訳ありませんが、これはSQLServer専用のようです。それでも、SQL Serverユーザーに同じ質問がある場合は、このツールを絶対にお勧めします。

5
AlexJReid

ボトムオフに追加するだけのスクリプト(もちろんソース管理下)を用意します。これを本番データベースから開発者への定期的な復元と組み合わせると、黄金色になるはずです。あなたがそれについて厳格であるならば、これは非常にうまくいきます。

そうでなければ、多くの人がSQLServerにredgateのものを使用していることを私は知っています。

5
Iain Holder

PostgreSQLの場合、 別のPostgreSQL差分ツール を使用できます。 2つのSQLダンプを非常に高速に差分できます(約300のテーブル、50のビュー、500のストアドプロシージャがあるデータベースでは数秒)。したがって、変更を簡単に見つけて、実行できるsqldiffを取得できます。

APGDiffページから:

もう1つのPostgreSQL差分ツールは、スキーマのアップグレードに役立つ単純なPostgreSQL差分ツールです。このツールは、2つのスキーマダンプファイルを比較し、(いくつかの手作りの変更の後)古いスキーマのアップグレードに適した出力ファイルを作成します。

5

開発データベース(CREATE、ALTER、DROPなどの一連のDDL命令)のSQLステートメントを作成する場合は、「バージョン」を使用してテーブルに記録することで、それらを追跡してみませんか。 「インデックス?その後、次のことができるようになります。

  1. バージョンの変更を追跡する
  2. 記録された命令をデータベースに送信することにより、本番データベースの「自動」更新を可能にする小さなルーチンを作成します。
2

私は本当に好きです EMSツール

すべての一般的なDBで利用できるツールがあり、すべてのタイプのDBで同じユーザーエクスペリエンスを利用できます。

ツールの1つはDBComparerです。

1
bob

ヒキガエル

過去に何度かお尻を救った。なぜ人々は出口戦略なしでSQLを実行するのですか?

レッドゲートのものも良いです。

1
John Nicholas

これは、Magentoデータベースを同期するために作成したストレートなlinux bashスクリプトです...しかし、他の用途のために簡単に変更できます:)

http://markshust.com/2011/09/08/syncing-magento-instance-production-development

0
Mark Shust

Hibernate を使用してこれを解決します。欠落しているテーブルや列などを検出して自動作成できます。

0
Black

[〜#〜] dbv [〜#〜] -「データベースのバージョン管理が簡単になりました!」 (PHP)

0
AKi

Siebel(CRM、販売などの管理製品)には、本番データベースを開発データベース(dev2prod)に合わせるためのツールが組み込まれています。

それ以外の場合は、手動で実行されるスクリプトに固執する必要があります。

0

Navicat には、これを処理する構造同期ウィザードがあります。

0
Colonel Sponsz

dbDeploy または同様のスクリプトを使用して、現在の作業方法に自動化を追加できます。これにより、スキーマの変更を追跡し、必要に応じてスキーマをアップグレード/ロールバックできます。

0
wimvds