MySQL データ モデルを保存し、変更が行われたときに (または少なくとも毎晩) 開発データベース サーバーに変更を自動的に適用する最良の方法は何ですか?
たとえば、今日、私は自分のプロジェクトに取り組んでおり、データベースにこのテーブルを作成し、ステートメントを SQL ファイルに保存して、後で本番環境にデプロイします。
create table dog (
uid int,
name varchar(50)
);
そして明日、各犬の品種も記録したいと思います。そこで、SQL ファイルを次のように変更します。
create table dog (
uid int,
name varchar(50),
breed varchar(30)
);
このスクリプトは、最初のリリースでは本番環境で機能しますが、開発データベースの更新には役立ちませんERROR 1050 (42S01): Table 'dog' already exists
。. さらに、この変更が最初のリリース後に行われた場合、本番環境では機能しません。だから私は今、本当にALTER
テーブルに着く必要があります。
だから今、私は2つの懸念があります:
- これは、データ モデル (SQL ファイル内の一連の create ステートメント) を保存する方法ですか?
- このような変更をデータベースに適用するにはどうすればよいですか?
私の目標は、変更を正確にリリースし、継続的な統合を可能にすることです。私は DDLSYNC というツールを使用して、Oracle データベースの違いを見つけて適用しますが、MySQL に類似したツールが存在するかどうかはわかりません。