Railsプロジェクトの構築を開始するのに役立つRails Migrationsについて読んでいます。
db/migrate でのファイルの生成について少し混乱しています。
私がこれまでアプリケーションを設計してきた方法は、モデルから始めることです...システムに含める予定のすべてのオブジェクトをできる限り概説します。rails migration generator を使用して、これらのモデルから自動的に移行ファイルを生成したいと思います。
はい、「移行を手動で作成するのは簡単だ」ということは知っています。手動で実行できることはわかっていますが、ツールが事前に作成されたモデルから分離されている理由がわかりません。
記事と SO に関するその他の移行に関する質問からの私の理解に基づいて、次のような移行を生成できます。
rails generate migration SomeObj field:string some_other_field:integer
モデルが SomeObj 用に既に存在するのに、なぜフィールドを渡す必要があるのですか? Rails は some_obj.rb からそれを検出し、そこから移行を作成できませんでしたか?
また、has_many、belongs_to、および has_to_and_belongs_to_many の関係を持つより複雑なモデルがある場合、JOIN テーブルとフィールドが正しい名前 (foreign_obj_id、foreign_obj_ids など) で自動作成されると非常に便利です。
以前のプロジェクトでは、Mongo+Mongoid を使用していたため、移行に対処する必要はありませんでした。コレクションは、Mongo の動作の性質上、自動的に生成されました (存在しないコレクションは、挿入または更新時に自動的に作成されます)。この Rails アプリでは Postgres を使用しています (しかし、MySQL やその他のリレーショナル データベースでも同じことが起こると確信しています)。
とにかく、この種のヘルパーはありませんか?これらの移行はすべて手動で作成する必要がありますか?