que estaba haciendo este tipo de cosas en mis migraciones:Migraciones de rieles: verificar la existencia y seguir avanzando?
add_column :statuses, :hold_reason, :string rescue puts "column already added"
pero resulta que, mientras esto funciona para SQLite, que no funciona para PostgreSQL. Parece que si add_column explota, , incluso si se detecta la excepción, la transacción está muerta y la migración no puede hacer ningún trabajo adicional.
¿Hay alguna forma no específica de BD para comprobar si ya existe una columna o una tabla? En su defecto, ¿hay alguna forma de que mi bloque de rescate funcione realmente?
¿es considerado el mejor pract ice para verificar si existe una columna/tabla antes de agregar/crearla? (Sé que por supuesto depende del problema en las manos) –
¿Funciona esto con retrocesos si lo defino en el método de cambio? – dardub
Sí, la reversión sería un problema ... no estamos seguros de si deberíamos eliminar la columna o no ... ya que no estamos grabando el estado anterior. – songyy