aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.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_statements.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_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index 16aefc94ab..33a2afeba2 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -93,6 +93,12 @@ module ActiveRecord
(!options.key?(:null) || c.null == options[:null]) }
end
+ # Returns just a table's primary key
+ def primary_key(table_name)
+ pks = primary_keys(table_name)
+ pks.first if pks.one?
+ end
+
# Creates a new table with the name +table_name+. +table_name+ may either
# be a String or a Symbol.
#
@@ -220,7 +226,11 @@ module ActiveRecord
Base.get_primary_key table_name.to_s.singularize
end
- td.primary_key pk, options.fetch(:id, :primary_key), options
+ if pk.is_a?(Array)
+ td.primary_keys pk
+ else
+ td.primary_key pk, options.fetch(:id, :primary_key), options
+ end
end
yield td if block_given?