2017/09/22分のコミットです。
CHANGELOGへの追加はありませんでした。
Use TOPLEVEL_BINDING
in rails runner command
railties/lib/rails/commands/runner/runner_command.rb
の修正です。
Command::RunnerCommand#perform
メソッドでeval
を実行する際に、bind
引数にTOPLEVEL_BINDING
を指定するよう修正しています。
- eval(code_or_file, binding, __FILE__, __LINE__) + eval(code_or_file, TOPLEVEL_BINDING, __FILE__, __LINE__)
Kernel.#binding
で生成されるBinding オブジェクトだとscopeがlocal scopeになり、期待通りのconstantが呼ばれない可能性がある(RunnerCommand#perform
メソッドが定義されているscopeに、runnerで実行したいconstantと同じ名前のconstantが存在していた場合に、runnerで実行したいconstantが呼ばれない)為。
Implement change_table_comment and change_column_comment for MySql Adapter
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
ConnectionAdapters::AbstractMysqlAdapter
クラスにchange_table_comment
メソッド及びchange_column_comment
メソッドを定義しています。table及びcolumnのコメントを変更出来るようにする為。
migrationでcommentを使用出来るようにしたPRでは、何故かpostgres adapterにだけ該当のメソッドが実装されていてmysql adapterの方は対応が漏れていたようです。
Return nil if table comment is blank
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
ConnectionAdapters::AbstractMysqlAdapter#table_comment
メソッドでcommentが空の場合nilを返すよう修正しています。
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
ConnectionAdapters::AbstractMysqlAdapter#remove_index_sql
メソッドでdropするindex_name
をquoteするよう修正しています。