Rails migrations: Undo default setting for a column

Posted by wulfovitch on Stack Overflow See other posts from Stack Overflow or by wulfovitch
Published on 2009-05-20T10:42:52Z Indexed on 2010/04/06 5:13 UTC
Read the original article Hit count: 237

Filed under:
|
|
|

Hi Stack Overflow Community!

I have the problem, that I have an migration in Rails that sets up a default setting for a column, like this example:

def self.up
  add_column :column_name, :bought_at, :datetime, :default => Time.now
end

Suppose, I like to drop that default settings in a later migration, how do I do that with using rails migrations?

My current workaround is the execution of a custom sql command in the rails migration, like this:

def self.up
  execute 'alter table column_name alter bought_at drop default'
end

But I don't like this approach, because I am now dependent on how the underlying database is interpreting this command. In case of a change of the database this query perhaps might not work anymore and the migration would be broken. So, is there a way to express the undo of a default setting for a column in rails? Thanks in advance!

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about migration