0

元の祖先コードベースを共有する 2 つのサーバーがありますが、データベース スキーマに関して過去数か月間で変更されています (私は mysql を使用しています)。2 番目のサーバーを新しい運用サーバーとして使用しようとしていますが、データを更新する必要があります (新しいユーザーがいる、それらのユーザーに関連する新しいデータがあるなど)。サーバー内のデータは現在ライブですが、古いスキーマに権限を持たせたいのですが、新しいスキーマのスキーマを最終的なものにしたいのです。したがって、これは一種の奇妙なマージです。古いサーバーのデータを、(それほど大きくはない) 異なるスキーマを持つ新しいサーバーにインポートする必要があります。

最新のデータでサーバーのダンプを単純に作成することを考えていましたが、スキーマがかなり変更されているため、それをロードすることはできません。

また、新しいサーバーのスキーマをダンプして古いサーバーのコピーに適用し、後者からデータをダンプして新しいサーバーにロードすることも考えていましたが、それを行う方法がわかりませんそして、それが最も安全な選択肢である場合。

私は mac OS X で開発を行っており、サーバーは両方とも debian です。

4

2 に答える 2

1

新しいサーバーから古いサーバーにスキーマを適用してからデータを移行するのが最も安全なオプションです。これは主に、データに関して具体的に何が変更され、それに対して何をしたいかを評価する必要があるためです (たとえば、新しい列がどこにあるのか)。追加、何を入れたいですか)?

スキーマが大きく異なるわけではないとおっしゃっていたので、各サーバーのデータなしで (つまり、テーブルのみ) mysqldump を実行し、手動で (たとえば、とdiff) 比較するだけで、どの列が異なるかがわかります。その後、これらの変更をALTER古いデータベースに適用できます。

それはすべて少し不器用ですが、最終的には、これを行うための不器用な方法はありません。

于 2012-07-23T00:07:00.347 に答える
0

ここを見てください: http://bitbucket.org/idler/mmp - これは mysql スキーマのバージョン管理のためのツールですが、データではなくスキーマのみです。最初にスキーマを移行してから、新しいデータをロードする必要があります。

于 2012-07-24T12:36:17.743 に答える