Move cleanup into teardown, delete obsolete code.
Add an option to skip installation of Turbolinks
[ci skip] doc corrected : ActiveRecord::Base.connections to ActiveRecord::Base.configurations
Merge pull request #15765 from rahul100885/master

[ci skip] doc corrected : ActiveRecord::Base.connections to ActiveRecord::Base.configurations
fix typo in test method names. [ci skip]
add `bin/rake db:purge` task to empty the current database.
Move test teardown into `ensure` block.
Merge pull request #15768 from zuhao/refactor_activesupport_concern_test

Move test teardown into `ensure` block.
Don't mess with `column_defaults` when optimistic locking is enabled
Add test cases for Migration#inverse_of
Merge pull request #15771 from sgrif/sg-stop-messing-with-column-defaults

Don't mess with `column_defaults` when optimistic locking is enabled
Use `column_defaults` in dirty for checking changed defaults

We no longer need to "init changed attributes" from the initializer,
either, as there is no longer a case where a given value would differ
from the default, but would not already be marked as changed.
Merge pull request #15775 from sgrif/sg-use-column-defaults-in-dirty

Use `column_defaults` in dirty for checking changed defaults
Don't assume that Hstore columns have always changed

HStore columns come back from the database separated by a comma and a
space, not just a comma. We need to mirror that behavior since we
compare the two values.

Also adds a regression test against JSON to ensure we don't have the
same bug there.
Merge pull request #15780 from sgrif/sg-dont-always-save-mutable-types

Don't assume that Hstore columns have always changed
[ci skip] fix doc for the Hash#assert_valid_keys
Fix documentation from #15669 [ci skip]
Move array database type casting to the Array type

The case where we have a column object, but don't have a type cast
method involves type casting the default value when changing the schema.
We get one of the column definition structs instead. That is a case that
I'm trying to remove overall, but in the short term, we can achieve the
same behavior without needing to pass the adapter to the array type by
creating a fake type that proxies to the adapter.
Don't type cast the default on the column

If we want to have type decorators mess with the attribute, but not the
column, we need to stop type casting on the column. Where possible, we
changed the tests to test the value of `column_defaults`, which is
public API. `Column#default` is not.
Merge pull request #15727 from aditya-kapoor/add-tests-for-migration

Add test cases for Migration#inverse_of