43

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

あなたの実践は何ですか、そしてその中であなたを助けるアプリケーションは何ですか。

4

13 に答える 13

30

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

Jeff Atwoodによって提供され、K。Scott Allenによって書かれたこの一連のリンクは、これがどのように見えるべきかを詳細に説明しています 。 2008/02 / get-your-database-under-version-control.html

于 2010-10-12T11:46:52.247 に答える
6

PostgreSQL の場合は、 Another PostgreSQL Diff Toolを使用できます。2 つの SQL ダンプを非常に高速に比較できます (約 300 のテーブル、50 のビュー、および 500 のストアド プロシージャを含むデータベースで数秒)。したがって、変更を簡単に見つけて、実行できるSQL diffを取得できます。

APGDiff ページから:

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

于 2008-11-01T18:38:48.343 に答える
5

ボトムオフにのみ追加するスクリプトを (もちろんソース管理下で) 用意してください。運用データベースから dev への定期的な復元と組み合わせると、ゴールデンになるはずです。あなたがそれについて厳密であれば、これは非常にうまく機能します。

それ以外の場合、多くの人が SQLServer に redgate を使用していることを知っています。

于 2008-11-01T18:25:24.800 に答える
5

RedGate SQL Compare にもう 1 票

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

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

編集:申し訳ありませんが、これはSQL Server専用のようです。それでも - もし SQL Server ユーザーが同じ質問をしているなら、私は間違いなくこのツールをお勧めします.

于 2008-11-01T19:53:16.790 に答える
2

開発データベース用の SQL ステートメント (CREATE、ALTER、DROP などの一連の DDL 命令であると想像されます) を作成する場合、"バージョン" 索引?その後、次のことができるようになります。

  1. バージョンの変更を追跡する
  2. 記録された指示をデータベースに送信することにより、本番データベースの「自動」更新を可能にする小さなルーチンを作成します。
于 2008-11-03T20:35:33.787 に答える
1

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

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

ツールの1つは、DBComparerです。

于 2008-11-02T11:19:09.667 に答える
1

ヒキガエル

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

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

于 2010-10-12T14:36:54.073 に答える
0

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

于 2008-11-01T18:28:20.457 に答える
0

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

そうしないと、手動で実行するスクリプトに固執する必要があります。

于 2008-11-01T18:25:25.487 に答える
0

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

于 2008-11-01T21:47:31.100 に答える
0

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

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

于 2011-09-08T19:54:03.557 に答える
0

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

于 2010-10-13T08:25:10.617 に答える