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_statements.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_statements.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb | 12 |
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? |