aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
diff options
context:
space:
mode:
authorJeremy Daer (Kemper) <jeremydaer@gmail.com>2015-09-19 15:32:17 -0700
committerJeremy Daer (Kemper) <jeremydaer@gmail.com>2015-09-19 15:32:17 -0700
commit1524c01161048f7d2aa9e747c2687a93340a217e (patch)
treeb8f04e5dc9321239c6784567c60f0393923cbaa7 /activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
parent1e638c552075ead707f31dfddf793e414ee69354 (diff)
parentab12859947a1faeac3df93ebeb54efc572cf1803 (diff)
downloadrails-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.rb13
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)}