2018/11/08分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Adds support for multiple databases to
rails db:schema:cache:dump
andrails db:schema:cache:clear
. - Defining an Enum as a Hash with blank key, or as an Array with a blank value, now raises an
ArgumentError
. - Add an
:if_not_exists
option tocreate_table
.
Add multi-db support to schema cache dump and clear
activerecord/lib/active_record/railties/databases.rake
、
activerecord/lib/active_record/tasks/database_tasks.rb
の修正です。
db:schema:cache:dump
taskとdb:schema:cache:clear
に複数DB向けのサポートを追加しています。
Guard Enums against definitions with blank label names
activerecord/lib/active_record/enum.rb
の修正です。
enums
に指定する値にvaluesに空の値(e.g. enum status: { "" => 1, "active" => 2 }
)を指定した場合にArgumentError
をraiseするよう修正しています。
valuesに指定された値を元にscope用のメソッド等を定義するのですが、空だと!
と?
というメソッドが定義されてしまい、予期せぬ挙動になってしまう為使用出来ないようにしています。
Fix broken CHANGELOG markup [ci skip]
CHANGELOGのフォーマットが壊れていた箇所があったのを修正、及び、不要なスペースを削除しています。
railties/test/application/rake_test.rb
の修正です。
test_scaffold_with_references_columns_tests_pass_by_default
でscaffold
生成されたファイルに対してテストを実行する前に、テスト用のassetsファイルをコンパイルするよう修正しています。
元々webpacker:compile
は実行されていたのですが、RAILS_ENV
が指定されていない為、development用のassetsがコンパイルされており、意味が無かった(webpacker
はデフォルトでtest用とdevelopment用のassetsを別に管理すうる)為、RAILS_ENV
にtest
を指定しwebpacker:compile
を実行するよう修正しています。
Use RuboCop 0.60.0 and remove exclude files for Style/RedundantFreeze
.codeclimate.yml
、.rubocop.yml
の修正です
codeclimateで使用するRuboCopのバージョンを0.60.0
に更新、及び、RuboCop 0.60.0
で修正された、Style/RedundantFreeze
copのfalse positiveを避ける為にExclude
を指定していたのを削除しています。
Add an :if_not_exists option to create_table
Active Recordの修正です。
create_table
にif_not_exists
オプションを追加しています。
create_table :posts, if_not_exists: true do |t| t.string :title end
上記のような指定をした場合、下記のSQLが実行されるようになります。
CREATE TABLE IF NOT EXISTS posts ( ... )
Remove unused argument expected_database
railties/test/application/rake/multi_dbs_test.rb
の修正です。
db_migrate_namespaced
、db_migrate_status_namespaced
メソッドから使用していないexpected_database
引数を削除しています。