我有一个问题,我在Rails中进行了迁移,该迁移为列设置了默认设置,例如以下示例:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
假设我想在以后的迁移中删除默认设置,那么如何使用Rails迁移来做到这一点?
我当前的解决方法是在rails迁移中执行自定义sql命令,如下所示:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
但是我不喜欢这种方法,因为我现在依赖于基础数据库如何解释该命令。在数据库更改的情况下,此查询可能不再起作用,并且迁移将中断。那么,有没有办法表达Rails中某个列的默认设置的撤消?
CHARACTER VARYING
列的默认值,只需将其设置为即可NULL::character varying
。