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
Это должен быть выбранный ответ
Нахтнам
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.