Methods
- A
- C
- D
- E
- I
- L
- M
- N
- P
- S
Attributes
[RW] | connection | |
[R] | version |
Class Public methods
load_from(filename) Link
new(conn) Link
Instance Public methods
add(table_name) Link
Add internal cache for table with table_name
.
clear!() Link
Clears out internal caches
clear_data_source_cache!(name) Link
Clear out internal caches for the data source name
.
columns(table_name) Link
Get the columns for a table
columns_hash(table_name) Link
Get the columns for a table as a hash, key is the column name value is the column object.
columns_hash?(table_name) Link
Checks whether the columns hash is already cached for a table.
data_source_exists?(name) Link
A cached lookup for table existence.
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 80 def data_source_exists?(name) prepare_data_sources if @data_sources.empty? return @data_sources[name] if @data_sources.key? name @data_sources[deep_deduplicate(name)] = connection.data_source_exists?(name) end
data_sources(name) Link
dump_to(filename) Link
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 155 def dump_to(filename) clear! connection.data_sources.each { |table| add(table) } open(filename) { |f| if filename.include?(".dump") f.write(Marshal.dump(self)) else f.write(YAML.dump(self)) end } end
encode_with(coder) Link
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 49 def encode_with(coder) reset_version! coder["columns"] = @columns coder["primary_keys"] = @primary_keys coder["data_sources"] = @data_sources coder["indexes"] = @indexes coder["version"] = @version coder["database_version"] = database_version end
indexes(table_name) Link
init_with(coder) Link
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 60 def init_with(coder) @columns = coder["columns"] @primary_keys = coder["primary_keys"] @data_sources = coder["data_sources"] @indexes = coder["indexes"] || {} @version = coder["version"] @database_version = coder["database_version"] derive_columns_hash_and_deduplicate_values end
initialize_dup(other) Link
marshal_dump() Link
marshal_load(array) Link
primary_keys(table_name) Link
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 71 def primary_keys(table_name) @primary_keys.fetch(table_name) do if data_source_exists?(table_name) @primary_keys[deep_deduplicate(table_name)] = deep_deduplicate(connection.primary_key(table_name)) end end end