Rails Migration, щоб зробити стовпець null => true


77

Я спочатку створив таблицю зі стовпцем як

t.string   "email",  :default => "", :null => false

Вимога змінилася, і тепер мені потрібно дозволити, щоб електронна пошта була нульовою. Як я можу написати перенесення, щоб зробити: null => true


Відповіді:


96

Спробуйте:

change_column :table_name, :email, :string, :null => true

2
Будь ласка, розгляньте можливість використання, change_column_nullоскільки це change_columnможе не працювати в певній версії
Морті Чой

106

Я не міг отримати вищевказане рішення для роботи з Active Record 4.0.8 та Postgresql 9.3

Однак change_column_null працював ідеально.

change_column_null :users, :email, true

Реверс має приємну опцію оновлення існуючих записів (але не встановлюється за замовчуванням), коли не допускається значення null.


12
Я рекомендую використовувати change_column_defaultразом із цим, якщо ви хочете nullбути значенням стовпця за замовчуванням. Інакше буде falseабо 0.
Джошуа Пінтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.