title: Rails migrations: Undo default setting for a column
body: <p>I have the problem, that I have an migration in Rails that sets up a default setting for a column, like this example:</p>
  
  <pre><code>def self.up
    add_column :column_name, :bought_at, :datetime, :default =&gt; Time.now
  end
  </code></pre>
  
  <p>Suppose, I like to drop that default settings in a later migration, how do I do that with using rails migrations?</p>
  
  <p>My current workaround is the execution of a custom sql command in the rails migration, like this:</p>
  
  <pre><code>def self.up
    execute 'alter table column_name alter bought_at drop default'
  end
  </code></pre>
  
  <p>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?</p>