1つのRails移行ファイルで複数のテーブルを変更するのは悪いことですか?


11

次のコードを使用して移行ファイルを作成しました。

class AddScheduleIdToPlayers < ActiveRecord::Migration
  def change
        add_column :players, :schedule_id, :integer
        add_column :schedules, :coach_id, :integer
  end
end

変更ごとに1つずつ、2つの移行ファイルを作成しないのは悪いことですか?


これは私の同じ質問のように見えます...しかし、ほとんどすべてのモデルに "updated_by"フィールドを追加したいと思います。単一の移行AddUpdatedByToMostObjectsでこれを実行できますか?
エイリアンライフフォーム

回答:


10

関連する変更をまとめておきたい。たとえば、双方向リレーションを実装し、ARリレーションで十分な列/テーブルを追加した場合、それらを1回の移行で保持します。

スキーマの変更が互いに関連していない場合(たとえば、異なる機能の一部)、それらを別々の移行に保持することをお勧めします。

よくわからないときは精神的な実験をします。移行を可能な限り最小の部分に分割し、そのうちの1つだけを削除しても機能が機能するかどうかを確認します。その場合、その部分はこのマイグレーションに属していない可能性があります。

それは2つの移行に分割できるようにあなたに私に見えます。ここには2つの機能があるようです。1つはプレーヤーのスケジュールを追加することで、もう1つはコーチをスケジュールに追加することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.