Migración de rieles: eliminar restricción

136

Tengo una tabla en una aplicación Rails que (en schema.rb) se ve así:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end

Me gustaría escribir una migración de rieles para permitir nulos para el campo de dirección. es decir, después de la migración, la tabla se ve así:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end

¿Qué debo hacer para eliminar la restricción?

Jay Godse
fuente

Respuestas:

248

En Rails 4+ para eliminar la restricción no nula, puede usar change_column_null:

change_column_null :users, :address, true
deepak
fuente
¿Realmente intentaste esto? Si observa el código fuente de la función, no verá nada más que:raise NotImplementedError, "change_column_null is not implemented"
drusepth
3
lo he usado en postgresql. rails lo define en el adaptador específico de la base de datos ver postgres , mysql . puede buscar a otros en apidock . Por lo tanto, tendrá que verificar el adaptador de la base de datos para obtener asistencia, en caso de que alguien obtenga unNotImplementedError
deepak
1
¡Votación a favor! Aquí está el enlace a las guías de Rails también.
mcKain
1
Esta debería ser la respuesta seleccionada
nahtnam