diff options
author | Jeremy Daer (Kemper) <jeremydaer@gmail.com> | 2015-09-19 15:32:17 -0700 |
---|---|---|
committer | Jeremy Daer (Kemper) <jeremydaer@gmail.com> | 2015-09-19 15:32:17 -0700 |
commit | 1524c01161048f7d2aa9e747c2687a93340a217e (patch) | |
tree | b8f04e5dc9321239c6784567c60f0393923cbaa7 /activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb | |
parent | 1e638c552075ead707f31dfddf793e414ee69354 (diff) | |
parent | ab12859947a1faeac3df93ebeb54efc572cf1803 (diff) | |
download | rails-1524c01161048f7d2aa9e747c2687a93340a217e.tar.gz rails-1524c01161048f7d2aa9e747c2687a93340a217e.tar.bz2 rails-1524c01161048f7d2aa9e747c2687a93340a217e.zip |
Merge pull request #21614 from kamipo/correctly_dump_composite_primary_key
Correctly dump composite primary key
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb index 18d943f452..236f577a38 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb @@ -38,14 +38,21 @@ module ActiveRecord end def visit_TableDefinition(o) - create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE " - create_sql << "#{quote_table_name(o.name)} " - create_sql << "(#{o.columns.map { |c| accept c }.join(', ')}) " unless o.as + create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE #{quote_table_name(o.name)} " + + statements = o.columns.map { |c| accept c } + statements << accept(o.primary_keys) if o.primary_keys + + create_sql << "(#{statements.join(', ')}) " if statements.present? create_sql << "#{o.options}" create_sql << " AS #{@conn.to_sql(o.as)}" if o.as create_sql end + def visit_PrimaryKeyDefinition(o) + "PRIMARY KEY (#{o.name.join(', ')})" + end + def visit_AddForeignKey(o) sql = <<-SQL.strip_heredoc ADD CONSTRAINT #{quote_column_name(o.name)} |