2009-09-16 12 views
11

¿Existe una convención de nomenclatura de mejores prácticas para las migraciones de Rails, especialmente al editar un modelo?Convenciones de nomenclatura para las migraciones de Rails

p. Ej. si yo estoy añadiendo una columna bar al modelo Foo, debería nombrarlo edit_foo o add_bar_to_foo

Asumo si estoy editando modelos mutliple entonces debería crear varias migraciones, pero lo que si estoy haciendo múltiples modificaciones a un solo modelo, ¿lo llamo add_bar_remove_x_edit_y_to_foo?

Respuesta

5

Estoy de acuerdo con la crítica anterior. La nomenclatura debe centrarse en la legibilidad. Pero también tenga en cuenta que no puede (ni debe) tener dos migraciones con el mismo nombre.

Así, los nombres generales como edit_foo_model no es generalmente una buena idea (ya que, lo que ocurre cuando se desea añadir más columnas a ese modelo), entonces sería mejor para agrupar las columnas en lo que el objetivo es, como update_foo_for_bar_support . Por lo general, puede omitir el modelo agregado, ya que, bueno, todo el mundo sabe que las migraciones manejan los modelos, por lo que no es necesario mencionarlo en el nombre (es decir, update_foo en lugar de update_foo_model).

Además, lo que suelo hacer es mantener separados los diferentes cambios. Entonces, si hay varios cambios diferentes en un modelo, los separaría en diferentes archivos de migración, uno para agregar columnas y otro para eliminar columnas, por ejemplo.

+1

Parece que la esencia de lo que dices surge con nombres razonables que reflejan los cambios que estás haciendo en el modelo, en lugar de genéricos edit_foo o verbose add_bar_to_foo. p.ej. add_bar_support_to_foo. Y si su migración está haciendo múltiples cambios no relacionados, entonces divídalo. Eso tiene sentido :) – roryf

0

El punto es la legibilidad: para averiguar rápidamente de qué es responsable la migración ... si escribe demasiados "datos" en el nombre, hace más difícil escanear y se dispara en el pie.

Así que .. si es 1-2, escribir cambios en el nombre, si hay demasiados cambios, escribir update_foo_model (o edit_foo_model)

+1

El problema es si tiene que hacer un cambio similar más adelante en la vida. No puedes tener migraciones con el mismo nombre. –

+0

De hecho, es una solución directa para la mayoría de los casos, creo que la simplicidad del caso común vale la pena. – amitkaz

2

¡Me dividiría en múltiples cambios de esquema en múltiples migraciones! ¡Entonces puede nombrar fácilmente las migraciones individuales!

Cuestiones relacionadas