aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2014-11-10 05:19:45 +0900
committerRyuta Kamizono <kamipo@gmail.com>2015-05-03 16:41:19 +0900
commit22ba159efcf85d66ff086d0f760d22c239607b77 (patch)
tree93be8062807396705e69eaad8ee3fb5307681d27 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parent76836ef7db8d0b1e40492c9a62f7c637718d813d (diff)
downloadrails-22ba159efcf85d66ff086d0f760d22c239607b77.tar.gz
rails-22ba159efcf85d66ff086d0f760d22c239607b77.tar.bz2
rails-22ba159efcf85d66ff086d0f760d22c239607b77.zip
Correctly dump `:options` on `create_table` for MySQL
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.rb10
1 files changed, 10 insertions, 0 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 76aee452ca..75c81cadfa 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -686,6 +686,16 @@ module ActiveRecord
end
end
+ def table_options(table_name)
+ create_table_info = select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"]
+
+ # strip create_definitions and partition_options
+ raw_table_options = create_table_info.sub(/\A.*\n\) /m, '').sub(/\n\/\*!.*\*\/\n\z/m, '').strip
+
+ # strip AUTO_INCREMENT
+ raw_table_options.sub(/(ENGINE=\w+)(?: AUTO_INCREMENT=\d+)/, '\1')
+ end
+
# Maps logical Rails types to MySQL-specific data types.
def type_to_sql(type, limit = nil, precision = nil, scale = nil)
case type.to_s