У меня проблема в том, что у меня есть миграция в Rails, которая устанавливает настройки по умолчанию для столбца, как в следующем примере:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Предположим, мне нравится отбрасывать эти настройки по умолчанию в более поздней миграции, как мне это сделать с помощью rails-миграций?
Мой текущий обходной путь - выполнение пользовательской команды sql в миграции rails, например:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Но мне не нравится этот подход, потому что теперь я зависим от того, как базовая база данных интерпретирует эту команду. В случае изменения базы данных этот запрос, возможно, может больше не работать, и миграция будет прервана. Итак, есть ли способ выразить отмену настройки по умолчанию для столбца в рельсах?
CHARACTER VARYING
столбцов, просто установите его наNULL::character varying
.