2015/11/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Use advisory locks to prevent concurrent migrations
- Alias left_joins to left_outer_joins
- Remove
DEFAULT_CHARSET
andDEFAULT_COLLATION
inMySQLDatabaseTasks
- Allow bigint with default nil for avoiding auto increment primary key
- Define
sanitize_sql_for_order
for AR and use it insidepreprocess_order_args
- Make
db:migrate:status
to render1_some.rb
format migrate files.
Fix double word 'string' [ci skip]
actionpack/lib/action_dispatch/testing/assertions/routing.rb
のdocの修正です。
assert_recognizes
メソッド内のdocにstring
が重複して記載されてしまっている箇所ががあったので、片方削除しています。
activerecord/CHANGELOG.md
の修正です。
migrationを実行する際、advisory locksを使用してmigrationが同時に実行されないよう対応を追加した、Use advisory locks to prevent concurrent migrations についてCHANGELOGに追記しています。
remove unnecessary .sass-cache
from plugin's gitignore template
railties/lib/rails/generators/rails/plugin/templates/gitignore
の修正です。
pluginのgitignoreから、もう使用されていない.sass-cache
ディレクトリを削除しています。
Merge pull request #22131 from yui-knk/move_test_to_inheritance_test
activerecord/test/cases/base_test.rb
、
activerecord/test/cases/inheritance_test.rb
の修正です。
Inheritance
moduleに定義されているメソッド(abstract_class?
、descends_from_active_record?
、compute_type
)についてのテストを、base_test.rb
からinheritance_test.rb
に移動しています。
Add CHANGELOG entry for #22125 [ci skip]
activerecord/CHANGELOG.md
の修正です。
left_outer_joins
のaliasとしてleft_joins
を追加した、Alias left_joins to left_outer_joinsの対応について、CHANGELOGに追記しています。
Remove DEFAULT_CHARSET
and DEFAULT_COLLATION
in MySQLDatabaseTasks
activerecord/lib/active_record/tasks/mysql_database_tasks.rb
の修正です。
MySQLDatabaseTasksから、DEFAULT_CHARSET
、DEFAULT_COLLATION
を削除しています。
それぞれ、値が定義されていなかった場合にutf8
、utf8_unicode_ci
をデフォルトとして使用するようになっていたのですが、utf8_unicode_ci
はハ
とパ
が同一視されてしまう、という挙動をしており、日本語を使用した場合に予期せぬ挙動をしてしまう、という問題があった為勝手にデフォルトを設定しないよう削除しています。
参考:ActiveRecordでデフォルトの照合順序を変更する - Qiita
Allow bigint with default nil for avoiding auto increment primary key
activerecord/lib/active_record/connection_adapters/mysql/schema_definitions.rb
、
activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb
の修正です。
bigint
のdefaultにnil
を指定出来るよう対応しています。
Define sanitize_sql_for_order
for AR and use it inside preprocess_order_args
activerecord/lib/active_record/relation/query_methods.rb
、
activerecord/lib/active_record/sanitization.rb
の修正です。
ORDER句に指定する用のSQLを生成する為のActiveRecord::Sanitization.sanitize_sql_for_order
メソッドを追加しています。
docから。
sanitize_sql_for_order(["field(id, ?)", [1,3,2]]) # => "field(id, 1,3,2)" sanitize_sql_for_order("id ASC") # => "id ASC"
ActiveRecord::QueryMethods#order
メソッドの引数にArrayを渡した場合にサニタイズ処理を行うよう修正した、Merge pull request #13008 from ktheory/sanitize_orderで使用した処理をメソッドに切りだし形になります。
Make db:migrate:status
to render 1_some.rb
format migrate files.
activerecord/lib/active_record/migration.rb
、
activerecord/lib/active_record/railties/databases.rake
の修正です。
db:migrate:status
タスクが、不正なマイグレーションファイルについても正しくマイグレーション名を表示するよう修正しています。
不正なマイグレーションファイルではなく、マイグレーションIDが日時のフォーマットではないものについても、db:migrate:status
タスクで正しくマイグレーション名を表示するよう修正、が正しいようです。
マイグレーションIDが日時のフォーマットでないものも、元々マイグレーションファイルとしては正しく認識するとの事です。
CHANGELOGより。
* 1_valid_people_have_last_names.rb * 20150819202140_irreversible_migration.rb * 20150823202140_add_admin_flag_to_users.rb * 20150823202141_migration_tests.rb * 2_we_need_reminders.rb * 3_innocent_jointable.rb
上記のようなmigrationファイルがあった場合、db:migrate:status
の結果が以下のように変わっています。
# Before: Status Migration ID Migration Name -------------------------------------------------- up 001 ********** NO FILE ********** up 002 ********** NO FILE ********** up 003 ********** NO FILE ********** up 20150819202140 Irreversible migration up 20150823202140 Add admin flag to users up 20150823202141 Migration tests # After: Status Migration ID Migration Name -------------------------------------------------- up 001 Valid people have last names up 002 We need reminders up 003 Innocent jointable up 20150819202140 Irreversible migration up 20150823202140 Add admin flag to users up 20150823202141 Migration tests
Merge pull request #22142 from r11runner/query-guide-first-last-default-scope
rails guideのActive Record Query Interface
の修正です。
first
、last
メソッドについて説明している箇所に、それぞれdefault scope
の影響を受ける旨説明を追加しています。
Fix test_database_created_by_root of mysql
activerecord/test/cases/tasks/mysql_rake_test.rb
の修正です。
test_database_created_by_root
で、databaseを作る際に、:charset => 'utf8'
, :collation => 'utf8_unicode_ci'
を指定していたのを削除しています。