質問

OK、2つのDBがあるとします。さまざまな改訂版を通過するマスターテンプレートとして使用するものは、現在改訂3になっているとしましょう。ただし、2番目のDBは、リビジョン1のようにテンプレートのコピーです。

DB 2が使用されているため、テーブルをドロップしたくありませんが、DB全体の構造をDB 1の最新バージョンに更新する必要があります。

手動で同じ変更を行い、何度も何度も(さまざまなバージョンで多くのDBを超えて)データを失うことなく、これを行う方法はありますか?

データの整合性が問題であることを知っています。一部のデータはもはや有効ではないなど、それをオーバーライドする方法がないためですか?

理想的には、db 1の構造のmysqldumpを使用し、すべてのデータを失うことなくdb 1の新しいバージョンでdb 2の競合するテーブルを上書きできるようにしたいだけです。 phpmyadminでこれを行う方法があれば、それは壮大です。

役に立ちましたか?

解決

あなたが試すことができます mysqlワークベンチ;それはあなたを可能にします

  1. MySQLデータベースからスキーマを作成します。
  2. DBバージョン3をリバースエンジニアリングすることにより、スキーマをMySQLワークベンチにインポートします。
  3. 次に、DBバージョン1のスキーマと比較して、 SQL alter 脚本。

他のヒント

DBコネクタがあなたのためにそれを行うか(一部のPythonフレームワークはDBを進化させることができます)か、手動でそれを行う必要があります。

手動でそれを行う必要がある場合、最良のアプローチは、スクリプトのデータを使用してデータベース全体を作成できるようにすることです。これは完全に自動化する必要があります。ベースバージョンを作成した後、スクリプトの後にスクリプトを適用して、DB(テーブルの変更など)を進化させます。

これを自動テストで行うと、顧客のサイトに次のバージョンをインストールするときにDBを自動的に移行できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top