From ab12859947a1faeac3df93ebeb54efc572cf1803 Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Thu, 25 Jun 2015 16:52:33 +0900 Subject: Correctly dump composite primary key Example: create_table :barcodes, primary_key: ["region", "code"] do |t| t.string :region t.integer :code end --- .../lib/active_record/connection_adapters/sqlite3_adapter.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb') 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: -- cgit v1.2.3