Ist es eine schlechte Form, mehrere Tabellen in einer einzelnen Rails-Migrationsdatei zu ändern?

11

Ich habe eine Migrationsdatei mit dem folgenden Code geschrieben:

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

Ist es eine schlechte Form, nicht zwei Migrationsdateien zu erstellen, eine für jede Änderung, oder ist das in Ordnung?

Eric Baldwin
quelle
Dies scheint meine gleiche Frage zu sein ... aber wir möchten fast allen unseren Modellen ein "update_by" -Feld hinzufügen. Können wir dies einfach in einer einzigen Migration tun? AddUpdatedByToMostObjects?
Alien Life Form

Antworten:

10

Sie möchten verwandte Änderungen zusammenhalten. Wenn Sie beispielsweise eine bidirektionale Beziehung implementieren und Spalten / Tabellen hinzufügen, um AR-Beziehungen zu genügen, möchten Sie diese in einer Migration behalten.

Wenn Änderungen im Schema nicht miteinander zusammenhängen (z. B. Teile verschiedener Funktionen), sollten Sie sie in separaten Migrationen aufbewahren.

Ich mache ein mentales Experiment, wenn ich mir nicht sicher bin. Ich versuche, die Migration für die kleinstmöglichen Teile aufzubrechen und dann zu überprüfen, ob meine Funktion noch funktioniert, wenn ich nur eines der Teile entferne. Wenn es so ist, gehört das Stück wahrscheinlich nicht zu dieser Migration.

Ihr sieht für mich so aus, als ob es in zwei Migrationen aufgeteilt werden kann. Es scheint, dass Sie hier zwei Funktionen haben. Zum einen geht es darum, Zeitpläne für Spieler hinzuzufügen, zum anderen um Trainer zu Zeitplänen hinzuzufügen.

Sinnlos
quelle