J'ai écrit un fichier de migration avec le code suivant:
class AddScheduleIdToPlayers < ActiveRecord::Migration
def change
add_column :players, :schedule_id, :integer
add_column :schedules, :coach_id, :integer
end
end
Est-ce une mauvaise forme de ne pas créer deux fichiers de migration, un pour chaque modification, ou est-ce correct?
ruby-on-rails
migration
Eric Baldwin
la source
la source
Réponses:
Vous souhaitez regrouper les modifications associées. Par exemple, si vous implémentez une relation bidirectionnelle et ajoutez des colonnes / tables pour suffire aux relations AR, vous souhaitez conserver celles-ci dans une migration.
Si les modifications de schéma ne sont pas liées les unes aux autres (parties de fonctionnalités différentes, par exemple), il est préférable de les conserver dans des migrations distinctes.
Je fais une expérience mentale quand je ne suis pas sûr. J'essaie d'interrompre la migration pour les plus petites pièces possibles, puis de vérifier si ma fonctionnalité fonctionne toujours si je ne retire qu'une seule des pièces. Si c'est le cas, cette pièce n'appartient probablement pas à cette migration.
Le vôtre me semble pouvoir être divisé en deux migrations. Il semble que vous ayez deux fonctionnalités ici. L'un concerne l'ajout d'horaires pour les joueurs et un autre l'ajout d'entraîneurs aux horaires.
la source