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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.