aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2015-06-25 16:52:33 +0900
committerRyuta Kamizono <kamipo@gmail.com>2015-09-20 06:43:00 +0900
commitab12859947a1faeac3df93ebeb54efc572cf1803 (patch)
treed4484375825a2f7262e2b44ed99bb67988d73356 /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent2e7415bf71b017180d92ac6fdcafe215cc9eddb6 (diff)
downloadrails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.gz
rails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.bz2
rails-ab12859947a1faeac3df93ebeb54efc572cf1803.zip
Correctly dump composite primary key
Example: create_table :barcodes, primary_key: ["region", "code"] do |t| t.string :region t.integer :code end
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 24fc67938d..452102a357 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -369,10 +369,9 @@ module ActiveRecord
end
end
- def primary_key(table_name) #:nodoc:
+ def primary_keys(table_name) # :nodoc:
pks = table_structure(table_name).select { |f| f['pk'] > 0 }
- return nil unless pks.count == 1
- pks[0]['name']
+ pks.sort_by { |f| f['pk'] }.map { |f| f['name'] }
end
def remove_index(table_name, options = {}) #:nodoc: