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?

Respuestas:



248

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

change_column_null :users, :address, true

¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.