Так что я ошибочно создал таблицу с полями, которые должны были быть NOT NULL.Изменение полей NOT NULL с полями NULL с использованием миграции
Мне нужно создать миграцию, чтобы изменить поля от NULLABLE до NOT NULL, но существуют некоторые строки, которые уже имеют значение NULL.
Могу ли я обновить эти строки и изменить поля? Я попытался это:
def change
change_column :countries, :effective_date, :date, :null => false, :default => Time.now
change_column :countries, :expiry_date, :date, :null => false, :default => Time.new(9999,12,31)
end
Но это не удалось с ошибкой:
mysql2 :: Ошибка: Недопустимое использование значения NULL: ALTER TABLE
Есть идеи? Нужно работать как на mysql, так и на сервере sql.
положить: NULL => ложным после дефолта и проверить, если он работает. –
все равно получил ту же ошибку! – user3437721
см. Ссылку http://viget.com/extend/adding-a-not-null-column-to-an-existing-table –