在单个Rails迁移文件中更改多个表是不好的形式吗?


11

我用以下代码编写了一个迁移文件:

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

不创建两个迁移文件(每次更改一个文件)是一种不好的形式吗?


这个问题与我的相同问题类似,但是我们想将“ updated_by”字段添加到几乎所有模型中。我们可以在单个迁移AddUpdatedByToMostObjects中进行此操作吗?
外星人生命表格

Answers:


10

您希望将相关更改保持在一起。例如,如果您实现了双向关系并添加了足以满足AR关系的列/表,则您希望将它们保持在一次迁移中。

如果架构更改彼此不相关(例如,部分不同功能),则最好将其保留在单独的迁移中。

当我不确定时,我会进行一次心理实验。我尝试将迁移分解为最小的部分,然后检查是否仅拆下其中一部分,是否仍可以使用我的功能。如果是这样的话,很可能不属于此迁移。

在我看来,您可以将它分为两​​个迁移。您似乎在这里有两个功能。一种是为球员添加时间表,另一种是为时间表添加教练。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.