Rails Migration: снять ограничение

136

У меня есть таблица в приложении Rails, которая (в schema.rb) выглядит следующим образом:

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

Я хотел бы написать миграцию рельсов, чтобы разрешить нулевые значения для поля адреса. т.е. после миграции таблица выглядит так:

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

Что мне нужно сделать, чтобы снять ограничение?

Джей Годсе
источник

Ответы:

248

В Rails 4+ для того, чтобы удалить ограничение not-null, вы можете использовать change_column_null:

change_column_null :users, :address, true
Дипак
источник
Вы действительно пробовали это? Если вы посмотрите на исходный код функции, вы не увидите ничего, кроме:raise NotImplementedError, "change_column_null is not implemented"
drusepth
3
использовал его в postgresql. rails определяет его в адаптере базы данных, см. postgres , mysql . можно искать других в apidock . Итак, придется проверить адаптер базы данных на поддержку, на случай, если кто-то получитNotImplementedError
deepak
1
Upvote! Вот ссылка на руководства по Rails .
mcKain
1
Это должен быть выбранный ответ
Нахтнам