MySQLデータベース全体の構造をどのように更新しますか?
-
19-09-2019 - |
質問
OK、2つのDBがあるとします。さまざまな改訂版を通過するマスターテンプレートとして使用するものは、現在改訂3になっているとしましょう。ただし、2番目のDBは、リビジョン1のようにテンプレートのコピーです。
DB 2が使用されているため、テーブルをドロップしたくありませんが、DB全体の構造をDB 1の最新バージョンに更新する必要があります。
手動で同じ変更を行い、何度も何度も(さまざまなバージョンで多くのDBを超えて)データを失うことなく、これを行う方法はありますか?
データの整合性が問題であることを知っています。一部のデータはもはや有効ではないなど、それをオーバーライドする方法がないためですか?
理想的には、db 1の構造のmysqldumpを使用し、すべてのデータを失うことなくdb 1の新しいバージョンでdb 2の競合するテーブルを上書きできるようにしたいだけです。 phpmyadminでこれを行う方法があれば、それは壮大です。
解決
あなたが試すことができます mysqlワークベンチ;それはあなたを可能にします
- MySQLデータベースからスキーマを作成します。
- DBバージョン3をリバースエンジニアリングすることにより、スキーマをMySQLワークベンチにインポートします。
- 次に、DBバージョン1のスキーマと比較して、
SQL alter
脚本。
他のヒント
DBコネクタがあなたのためにそれを行うか(一部のPythonフレームワークはDBを進化させることができます)か、手動でそれを行う必要があります。
手動でそれを行う必要がある場合、最良のアプローチは、スクリプトのデータを使用してデータベース全体を作成できるようにすることです。これは完全に自動化する必要があります。ベースバージョンを作成した後、スクリプトの後にスクリプトを適用して、DB(テーブルの変更など)を進化させます。
これを自動テストで行うと、顧客のサイトに次のバージョンをインストールするときにDBを自動的に移行できます。
所属していません StackOverflow