diff options
author | Yoshiyuki Kinjo <yskkin@gmail.com> | 2019-04-13 01:11:39 +0900 |
---|---|---|
committer | Yoshiyuki Kinjo <yskkin@gmail.com> | 2019-04-13 15:39:19 +0900 |
commit | 53f1b3e579e6d1969a244cd8e05590a46be6a96f (patch) | |
tree | 79089491c2c46766fd210b4775d78975ca37260a /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | 713f62430a42294dcb156cc8f38b41509a60d7a6 (diff) | |
download | rails-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.rb | 17 |
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)}") |