現在、私は phpMyAdmin に入り、データベースをテキスト ファイルとしてエクスポートし、それをアプリケーション ファイルと共に保存してから、svn (または git) にコミットします。もちろん、それを本番環境にインポートする必要があります。
より良い方法はありますか?
現在、私は phpMyAdmin に入り、データベースをテキスト ファイルとしてエクスポートし、それをアプリケーション ファイルと共に保存してから、svn (または git) にコミットします。もちろん、それを本番環境にインポートする必要があります。
より良い方法はありますか?
使用する言語によって異なりますが、RoR には組み込まれています。現在、ASP.net MVC で行っているプロジェクトでは、プロジェクトのフォルダーにデータベースという 2 つのファイルがあります。1 つのファイルにはデータベースの構造が含まれ、もう 1 つのファイルにはテスト用のダミー変数が含まれています。何かを更新するときに、(更新された) sql 構造スクリプトを再実行する必要があることを他の人に知らせる必要があるため、データベースを共有するのは面倒な方法だと言わざるを得ません。
構造スクリプトは、存在する場合はテーブルを削除し、それらを読み取り、新しいテーブルを追加します。
Ruby on Rails の db::migrate のような良い方法が見つかりませんでした。
Apache ODEを見ると、Buildr用のh2.rakeタスクがあり、テスト用のデータベースを自動的に構築します。
Rails Migration のようなものがなく、Java 環境などにいる場合は、 liquibaseをチェックしてください。それだけの柔軟性が必要な場合は、かなりクールです。データベース全体をセットアップする .sql ファイルを追跡するだけです。
通常、データベース (つまり、すべてのテーブル、ユーザー、ビュー、インデックスなど) を生成できるスクリプトと、DB にデータを入力する別のスクリプトを作成します。次に、DBDeploy (RoR の移行と同様) を使用して、すべての DB の変更を処理します。次に、Ant、NAnt、Buildr などでこれらすべてのスクリプトのビルド ターゲットを作成します。このようにして、すべてがバージョン管理され、テキスト ファイルで保存されるため、どの SCM でも機能します。
Rails で db:migrate に似た移行を探しているが、Rails を使用していない場合は、他のオプションがあります。db:migrate に似た migrate4j がありますが、Java 用に書かれています。また、非常に柔軟で (AFAIK) 言語に依存しない liquibase もありますが、すべてを XML で記述します (これは「Rails 方式」とは逆のようなものです)。