diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2015-12-29 23:29:42 -0200 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2015-12-29 23:29:42 -0200 |
commit | d3ec85402a50823ddacc2699699bc4b5f17e602e (patch) | |
tree | a68397ba41dcaccd5c8c1530d704727c7adcc768 /activerecord/lib | |
parent | cc5ae3e6df90056d0559aeb34e5dde7b505b9aa6 (diff) | |
parent | 228ed57de8679892199b9fe7a1d9d704e5e5fac7 (diff) | |
download | rails-d3ec85402a50823ddacc2699699bc4b5f17e602e.tar.gz rails-d3ec85402a50823ddacc2699699bc4b5f17e602e.tar.bz2 rails-d3ec85402a50823ddacc2699699bc4b5f17e602e.zip |
Merge pull request #22547 from kamipo/fix_create_table_info_cache
Correctly cache create_table_info
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 8 |
1 files changed, 6 insertions, 2 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 37e4eb24a8..863d8d3b8f 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -623,6 +623,7 @@ module ActiveRecord # it can be helpful to provide these in a migration's +change+ method so it can be reverted. # In that case, +options+ and the block will be used by create_table. def drop_table(table_name, options = {}) + create_table_info_cache.delete(table_name) if create_table_info_cache.key?(table_name) execute "DROP#{' TEMPORARY' if options[:temporary]} TABLE#{' IF EXISTS' if options[:if_exists]} #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}" end @@ -1018,9 +1019,12 @@ module ActiveRecord end end + def create_table_info_cache # :nodoc: + @create_table_info_cache ||= {} + end + def create_table_info(table_name) # :nodoc: - @create_table_info_cache = {} - @create_table_info_cache[table_name] ||= select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"] + create_table_info_cache[table_name] ||= select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"] end def create_table_definition(name, temporary = false, options = nil, as = nil) # :nodoc: |