Czy zmienianie wielu tabel w jednym pliku migracji Railsów jest złe?

11

Napisałem plik migracji z następującym kodem:

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

Czy źle jest nie tworzyć dwóch plików migracji, jednego dla każdej zmiany, czy to w porządku?

Eric Baldwin
źródło
To SEEMED jak moje to samo pytanie ... ale chcemy dodać pole „updated_by” do prawie wszystkich naszych modeli. Czy możemy to zrobić w pojedynczej migracji AddUpdatedByToMostObjects?
Alien Life Form

Odpowiedzi:

10

Chcesz zachować powiązane zmiany razem. Na przykład, jeśli zaimplementujesz relację dwukierunkową i dodasz kolumny / tabele w celu uzyskania wystarczających relacji AR, chcesz zachować je w jednej migracji.

Jeśli zmiany w schemacie nie są ze sobą powiązane (na przykład części różnych funkcji), lepiej przechowywać je w osobnych migracjach.

Robię mentalny eksperyment, kiedy nie jestem pewien. Próbuję przerwać migrację dla najmniejszych możliwych elementów, a następnie sprawdzam, czy moja funkcja nadal działa, jeśli usunę tylko jeden z elementów. Jeśli tak, to prawdopodobnie fragment nie należy do tej migracji.

Wygląda mi na to, że można go podzielić na dwie migracje. Wygląda na to, że masz tutaj dwie funkcje. Jeden dotyczy dodawania harmonogramów dla graczy, a drugi dodawania trenerów do harmonogramów.

Bezcelowy
źródło