diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-12-13 11:59:45 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-13 11:59:45 -0500 |
commit | ddf81c5aa5cd29598e7fdd79842ed906c8de76e1 (patch) | |
tree | 4f6ee22b28b5e561229098f63f2d75ea3adbdd9f /activerecord/lib/active_record/connection_adapters | |
parent | 04dd8b7ac7ba82843de77ece3c96124c3b3dc365 (diff) | |
parent | 4c00c6ed230e6fdc6199dfba43f6da1e741a02aa (diff) | |
download | rails-ddf81c5aa5cd29598e7fdd79842ed906c8de76e1.tar.gz rails-ddf81c5aa5cd29598e7fdd79842ed906c8de76e1.tar.bz2 rails-ddf81c5aa5cd29598e7fdd79842ed906c8de76e1.zip |
Merge pull request #27042 from kirs/yaml-schema-cache
Schema cache in YAML
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/column.rb | 22 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/schema_cache.rb | 16 |
2 files changed, 38 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/column.rb b/activerecord/lib/active_record/connection_adapters/column.rb index 02d546209d..61cd7ae4cc 100644 --- a/activerecord/lib/active_record/connection_adapters/column.rb +++ b/activerecord/lib/active_record/connection_adapters/column.rb @@ -40,6 +40,28 @@ module ActiveRecord Base.human_attribute_name(@name) end + def init_with(coder) + @name = coder["name"] + @table_name = coder["table_name"] + @sql_type_metadata = coder["sql_type_metadata"] + @null = coder["null"] + @default = coder["default"] + @default_function = coder["default_function"] + @collation = coder["collation"] + @comment = coder["comment"] + end + + def encode_with(coder) + coder["name"] = @name + coder["table_name"] = @table_name + coder["sql_type_metadata"] = @sql_type_metadata + coder["null"] = @null + coder["default"] = @default + coder["default_function"] = @default_function + coder["collation"] = @collation + coder["comment"] = @comment + end + def ==(other) other.is_a?(Column) && attributes_for_hash == other.attributes_for_hash diff --git a/activerecord/lib/active_record/connection_adapters/schema_cache.rb b/activerecord/lib/active_record/connection_adapters/schema_cache.rb index 8219f132c3..3a319c4029 100644 --- a/activerecord/lib/active_record/connection_adapters/schema_cache.rb +++ b/activerecord/lib/active_record/connection_adapters/schema_cache.rb @@ -21,6 +21,22 @@ module ActiveRecord @data_sources = @data_sources.dup end + def encode_with(coder) + coder["columns"] = @columns + coder["columns_hash"] = @columns_hash + coder["primary_keys"] = @primary_keys + coder["data_sources"] = @data_sources + coder["version"] = ActiveRecord::Migrator.current_version + end + + def init_with(coder) + @columns = coder["columns"] + @columns_hash = coder["columns_hash"] + @primary_keys = coder["primary_keys"] + @data_sources = coder["data_sources"] + @version = coder["version"] + end + def primary_keys(table_name) @primary_keys[table_name] ||= data_source_exists?(table_name) ? connection.primary_key(table_name) : nil end |