¿Es una mala forma cambiar varias tablas en un solo archivo de migración de Rails?

11

Escribí un archivo de migración con el siguiente código:

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

¿Es una mala forma no crear dos archivos de migración, uno para cada cambio, o está bien?

Eric Baldwin
fuente
Parecía mi misma pregunta ... pero queremos agregar un campo "updated_by" a casi todos nuestros modelos. ¿Podemos hacer esto en una sola migración AddUpdatedByToMostObjects?
Alien Life Form

Respuestas:

10

Desea mantener juntos los cambios relacionados. Por ejemplo, si implementa una relación bidireccional y agrega columnas / tablas para satisfacer las relaciones AR, desea mantenerlas en una migración.

Si los cambios en el esquema no están relacionados entre sí (partes de diferentes características, por ejemplo), es mejor mantenerlos en migraciones separadas.

Hago un experimento mental cuando no estoy seguro. Intento romper la migración para las piezas más pequeñas posibles y luego compruebo si mi función aún funciona si elimino solo una de las piezas. Si es así, es probable que la pieza no pertenezca a esta migración.

El tuyo me parece que se puede dividir en dos migraciones. Parece ser que tienes dos características aquí. Uno se trata de agregar horarios para jugadores y otro para agregar entrenadores a los horarios.

Inútil
fuente