小编wul*_*tch的帖子

Rails迁移:撤消列的默认设置

我有问题,我在Rails中有一个迁移设置列的默认设置,如下例所示:

def self.up
  add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Run Code Online (Sandbox Code Playgroud)

假设,我想在以后的迁移中删除默认设置,如何使用rails迁移?

我目前的解决方法是在rails迁移中执行自定义sql命令,如下所示:

def self.up
  execute 'alter table column_name alter bought_at drop default'
end
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这种方法,因为我现在依赖于底层数据库如何解释这个命令.如果数据库发生更改,此查询可能不再起作用,迁移将被破坏.那么,有没有办法表示在rails中删除列的默认设置?

ruby-on-rails rails-migrations

190
推荐指数
3
解决办法
4万
查看次数

标签 统计

rails-migrations ×1

ruby-on-rails ×1