title: Why does setting a default value for an existing column in an ActiveRecord Migration not extend to existing associations on production?
body: <p>If I add a default value to an existing column through an ActiveRecord Migration, when deploying my changes to production, existing associations are not affected.</p>
  
  <p>I can drop to a rails production console and iterate over every single record and set the value on the new column to false on each record however it's tedious and doesn't scale well.</p>
  
  <pre class="lang-rb prettyprint-override"><code>class AddDefaultValuesToAFewColumns &lt; ActiveRecord::Migration[5.2]
    def change
      change_column :downloads, :is_deleted, :boolean, :default =&gt; false
    end
  end
  </code></pre>
  
  <pre class="lang-rb prettyprint-override"><code>create_table "downloads", force: :cascade do |t|
      t.string "version"
      t.string "comment"
      t.string "contributors"
      t.string "release_date"
      t.datetime "created_at", null: false
      t.datetime "updated_at", null: false
      t.string "download_url"
      t.boolean "is_deleted", default: false
    end
  
  </code></pre>
  
  <p>The expected result would be for associations when queried from the rails console to return <code>false</code> for is_deleted, rather it returns <code>nil</code>. Why is this and what alternative solutions are there?</p>