Skip to content

Default values can't be loaded from schema.rb #39

Description

@emma-borhanian

For an empty array, the default ends up looking like :default => '{}' in schema.rb, however, this doesn't get single-quoted when turned into a CREATE TABLE statement, causing rake db:schema:load to fail.

The following patch fixes it for string arrays, by causing it to be encoded in schema.rb as :default => [] and could probably be generalized:

require'active_record/connection_adapters/postgresql_adapter'moduleConnectionAdaptersclassPostgreSQLColumn < Columnclass << selfdefextract_value_from_default_with_array(default)casedefaultwhenNilClassnil# Arrayswhen/\A'(.*)'::"?character varying.*"?\[\]\z/
$1.from_postgres_array(:string)elseextract_value_from_default_without_array(default)endendalias_method_chain:extract_value_from_default,:arrayendendend

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions