Rails 2 で Sqlite データベースに新しいテーブルを作成する最良の方法は何ですか。 rake db:migrate コマンドを使用してデータベースを作成しました。したがって、個々の SQL スクリプトを作成してデータベースを作成するか、何らかの方法で rake を使用する必要があります。足場はいらない。
3 に答える
基本的にマイグレーションを使用します。
移行の使用方法に関する役立つヘルプがhttp://wiki.rubyonrails.org/rails/pages/understandingmigrationsおよびhttp://wiki.rubyonrails.org/rails/pages/UsingMigrationsで利用できます。私が使用している優れたチートシートは、 http: //dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations でも入手できます。
基本的に移行では、Ruby コードを使用してデータベース テーブルを作成します。これを行うには、SQL DDL よりも素敵な Ruby コードを使用する方が (少なくとも私の意見では) はるかに簡単です。また、さまざまなことを自動的に行います ( id
Rails が必要とするすべてのテーブルにフィールドを追加するなど)。その後、rake タスクを使用して、移行を実際にデータベースに適用できます。移行によって得られるもう 1 つの大きな利点は、元に戻すことができることです。つまり、データベースはバージョン管理されており、あるバージョンから別のバージョンに簡単にジャンプできます。
CREATE/ALTER テーブル スクリプトの作成を避け、代わりに ActiveRecord の移行を使用してください。いくつかの理由が思い浮かびます。
- 移植性: クロスプラットフォームのフレーバーの違いを AR で処理できるようにする方がはるかに簡単です
- 変更管理: 移行では、VERSION= オプションを使用して両方向の変更を管理できますが、これは SQL では容易ではありません。
- それは Rails のやり方です。やむを得ない理由がない限り、Rails の規則に従います。
- シンプルさ: 移行を使用するときに id 列とタイムスタンプ列について心配する必要がないため、SQL で作業する場合にそれらを覚えておく必要がなくなります
スキャフォールディングを使用していない場合はscript/generate migration
、テーブルごとに移行ファイルを作成するために使用する必要があります。SQL スクリプトを使用する必要はありません。いくつかのマイグレーションを作成したら、rake db:migrate を使用してそれらをデータベースに適用できます。