diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-12-09 11:23:19 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-12-09 11:23:19 -0800 |
commit | 5b82f50feff3c80cbe7a7ae33b078baa1515150a (patch) | |
tree | 5711db729a9f9b367de1625ad1e184a5e9738810 /activerecord/lib/active_record | |
parent | 007965a6513f2631465cf8477846daf9532dafc4 (diff) | |
download | rails-5b82f50feff3c80cbe7a7ae33b078baa1515150a.tar.gz rails-5b82f50feff3c80cbe7a7ae33b078baa1515150a.tar.bz2 rails-5b82f50feff3c80cbe7a7ae33b078baa1515150a.zip |
Use `table_exists?` from the schema cache.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/base.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/schema_cache.rb | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 58d23d2f78..ba75dc6d09 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -762,7 +762,7 @@ module ActiveRecord #:nodoc: # Indicates whether the table associated with this class exists def table_exists? - connection.table_exists?(table_name) + connection.schema_cache.table_exists?(table_name) end # Returns an array of column objects for the table associated with this class. diff --git a/activerecord/lib/active_record/connection_adapters/schema_cache.rb b/activerecord/lib/active_record/connection_adapters/schema_cache.rb index b14b37ce89..bee03abd44 100644 --- a/activerecord/lib/active_record/connection_adapters/schema_cache.rb +++ b/activerecord/lib/active_record/connection_adapters/schema_cache.rb @@ -42,10 +42,7 @@ module ActiveRecord def table_exists?(name) return @tables[name] if @tables.key? name - connection.tables.each { |table| @tables[table] = true } - @tables[name] = connection.table_exists?(name) if !@tables.key?(name) - - @tables[name] + @tables[name] = connection.table_exists?(name) end # Clears out internal caches: @@ -66,6 +63,7 @@ module ActiveRecord @columns_hash.delete table_name @column_defaults.delete table_name @primary_keys.delete table_name + @tables.delete table_name end end end |