Это плохая форма для изменения нескольких таблиц в одном файле миграции 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?
Инопланетная форма жизни

Ответы:

10

Вы хотите сохранить связанные изменения вместе. Например, если вы реализуете двунаправленное отношение и добавляете столбцы / таблицы для достаточных отношений AR, вы хотите сохранить их в одной миграции.

Если изменения в схеме не связаны друг с другом (например, части различных функций), лучше хранить их в отдельных миграциях.

Я делаю мысленный эксперимент, когда я не уверен. Я пытаюсь разбить миграцию на наименьшие возможные кусочки, а затем проверяю, работает ли моя функция, если я сниму только одну из кусочков. Если это так, скорее всего, этот кусок не относится к этой миграции.

Твой взгляд выглядит так, будто его можно разделить на две миграции. Кажется, у вас есть две особенности здесь. Один о добавлении расписаний для игроков, а другой - о добавлении тренеров в расписание.

Бессмысленный
источник