He estado escribiendo algunas migraciones últimamente que caen bajo el paraguas Migración irreversible. Pero no son el fin del mundo irreversible. Podrías tirarlos hacia atrás si quieres. El escenario que tengo en este momento es cambiar una relación de uno a muchos a una relación de muchos a muchos. Implica descartar una columna y crear una nueva tabla de unión. (así como dos líneas en los modelos).Migraciones irreversibles: ¿advertencia y confirmación en lugar de abortar?
Estaba pensando, en lugar de abortar la migración descendente, podría decir algo como "Esta migración es [INSERTAR MENSAJES ASESINADOS AQUÍ], ¿está seguro de que desea continuar? S/N" y luego retrotraer la migración si ellos eligen? ¿Simplemente coloque la migración dentro de una declaración if?
Es bastante fácil hacer que las migraciones sean irreversibles, y generalmente hay una buena razón (por ejemplo, no se pueden recuperar los datos). ¿Estos problemas suelen resolverse simplemente escribiendo una migración que lo hace de forma manual?
En mi mente noobish estaría bien tener un medio feliz. ¿Es sabio? Tal vez simplemente no entiendo cuándo hacerlos irreversibles en primer lugar.
"es mucho más seguro para usted, la persona que escribe el modelo de datos cambia para saber cómo volver a pasar al estado anterior en lugar de que adivinen ". ¡Exactamente! Es por eso que me sorprendió un poco que esta opción no estuviera disponible ya que es completamente posible que alguien anule la excepción que usted escribe. – Nick
Ruby tiene muy pocas reglas. considere: http://gfredericks.com/gfrlog/post/51 Por lo tanto, confiamos en el sentido común, la convención y las buenas pruebas :) –