aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorYoshiyuki Kinjo <yskkin@gmail.com>2019-04-13 01:11:39 +0900
committerYoshiyuki Kinjo <yskkin@gmail.com>2019-04-13 15:39:19 +0900
commit53f1b3e579e6d1969a244cd8e05590a46be6a96f (patch)
tree79089491c2c46766fd210b4775d78975ca37260a /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parent713f62430a42294dcb156cc8f38b41509a60d7a6 (diff)
downloadrails-53f1b3e579e6d1969a244cd8e05590a46be6a96f.tar.gz
rails-53f1b3e579e6d1969a244cd8e05590a46be6a96f.tar.bz2
rails-53f1b3e579e6d1969a244cd8e05590a46be6a96f.zip
use PostgreSQL's bulk_alter_table implementation
Running this migration on mysql at current master fails because `add_references_for_alter` is missing. ``` change_table :users, bulk: true do |t| t.references :article end ``` This is also true for postgresql adapter, but its `bulk_alter_table` implementation can fallback in such case. postgresql's implementation is desirable to prevent unknown failure like this.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb17
1 files changed, 1 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
index ca8bbc14da..2a2b234ef8 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -63,7 +63,7 @@ module ActiveRecord
/mariadb/i.match?(full_version)
end
- def supports_bulk_alter? #:nodoc:
+ def supports_bulk_alter?
true
end
@@ -285,21 +285,6 @@ module ActiveRecord
SQL
end
- def bulk_change_table(table_name, operations) #:nodoc:
- sqls = operations.flat_map do |command, args|
- table, arguments = args.shift, args
- method = :"#{command}_for_alter"
-
- if respond_to?(method, true)
- send(method, table, *arguments)
- else
- raise "Unknown method called : #{method}(#{arguments.inspect})"
- end
- end.join(", ")
-
- execute("ALTER TABLE #{quote_table_name(table_name)} #{sqls}")
- end
-
def change_table_comment(table_name, comment) #:nodoc:
comment = "" if comment.nil?
execute("ALTER TABLE #{quote_table_name(table_name)} COMMENT #{quote(comment)}")