title: How do :default => 0 and :null => false differ for integer fields in migrations?
body: <p>If I use a migration to update a database, and I add an integer field like this:</p>
  
  <pre><code>t.integer :foo :default =&gt; 0, :null =&gt; false
  </code></pre>
  
  <p>What is the default state of existing and new records in the database?  I hoping the answer is:
  - Both will read back foo as 0.</p>
  
  <p>Is default => 0 necessary, if I have :null => false?</p>
  
  <p>Just trying to understand the difference between the two...</p>