Міграція рейок: усунення обмежень


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+ для усунення ненульових обмежень можна скористатися 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
Оновлення! Ось посилання на напрямні Рейки також.
mcKain

1
Це має бути обрана відповідь
нахтнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.