Use table_exists?
from the schema cache.
This commit is contained in:
parent
007965a651
commit
5b82f50fef
@ -762,7 +762,7 @@ def set_sequence_name(value = nil, &block) #: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.
|
||||
|
@ -42,10 +42,7 @@ def initialize(conn)
|
||||
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 @@ def clear_table_cache!(table_name)
|
||||
@columns_hash.delete table_name
|
||||
@column_defaults.delete table_name
|
||||
@primary_keys.delete table_name
|
||||
@tables.delete table_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -825,12 +825,12 @@ def test_caching_of_columns
|
||||
# clear cache possibly created by other tests
|
||||
david.projects.reset_column_information
|
||||
|
||||
# One query for columns, one for primary key
|
||||
assert_queries(2) { david.projects.columns; david.projects.columns }
|
||||
# One query for columns, one for primary key, one for table existence
|
||||
assert_queries(3) { david.projects.columns; david.projects.columns }
|
||||
|
||||
## and again to verify that reset_column_information clears the cache correctly
|
||||
david.projects.reset_column_information
|
||||
assert_queries(2) { david.projects.columns; david.projects.columns }
|
||||
assert_queries(3) { david.projects.columns; david.projects.columns }
|
||||
end
|
||||
|
||||
def test_attributes_are_being_set_when_initialized_from_habm_association_with_where_clause
|
||||
|
@ -9,6 +9,7 @@ class SessionTest < ActiveRecord::TestCase
|
||||
|
||||
def setup
|
||||
super
|
||||
ActiveRecord::Base.connection.schema_cache.clear!
|
||||
Session.drop_table! if Session.table_exists?
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user