Split ridiculously long line
Allow reverting of migration commands with Migration#revert [#8267]
Extract exec_migration  [#8267]
Allow revert of whole migration [#8267]
Add Migration#reversible for reversible data operations [#8267]
Add drop_join_table [#8267]
Make drop_table reversible [#8267]
Differentiate between remove_column and remove_columns. Make remove_column reversible.
[#8267]
Make remove_index reversible [#8267]
Factorize methods that are easily reversible [#8267]
Migration generators use `change` even for destructive methods [#8267]
Make change_table reversible when possible [#8267]
Make execute, change_column and remove_columns methods actually irreversible
[#8267]
Update Migration and 4.0 Release Guides, Changelogs [#8267]
Fix broken test for postgresql

For some reason postgresql doesn't pass an integer value to load.

cc @tenderlove
BufferedLogger is deprecated too.
Updated security guide with information about secret_token.rb and to suggest securing sensitive files like database.yml and secret_token.rb
Merge pull request #8581 from garysweaver/security_guide_update

Update security guide
Remove ActiveModel::Errors#add_on_present method.

We don't need to define a new method in ActiveMode::Errors for each
validatior.

See
https://github.com/rails/rails/commit/d72a07f1d1478db9daed847eadb35bfd840674f6#commitcomment-2325333
Use :present as key for the absence validatior message