Я спочатку створив таблицю зі стовпцем як
t.string "email", :default => "", :null => false
Вимога змінилася, і тепер мені потрібно дозволити, щоб електронна пошта була нульовою. Як я можу написати перенесення, щоб зробити: null => true
Я спочатку створив таблицю зі стовпцем як
t.string "email", :default => "", :null => false
Вимога змінилася, і тепер мені потрібно дозволити, щоб електронна пошта була нульовою. Як я можу написати перенесення, щоб зробити: null => true
Відповіді:
Спробуйте:
change_column :table_name, :email, :string, :null => true
change_column_null
оскільки це change_column
може не працювати в певній версії
Я не міг отримати вищевказане рішення для роботи з Active Record 4.0.8 та Postgresql 9.3
Однак change_column_null працював ідеально.
change_column_null :users, :email, true
Реверс має приємну опцію оновлення існуючих записів (але не встановлюється за замовчуванням), коли не допускається значення null.
change_column_default
разом із цим, якщо ви хочете null
бути значенням стовпця за замовчуванням. Інакше буде false
або 0
.