aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMontana Low <montanalow@gmail.com>2015-01-30 13:56:37 -0800
committerGreg Molnar <molnargerg@gmail.com>2015-03-01 08:45:14 +0000
commit67e46e42549f1dac435041d68c05717d0a0f54b6 (patch)
treeaa42d6707dd64842bd1ca76819f2fb2a319ddedc
parent28fccad2c4ca8159b1c827026cdd09de9c5a3669 (diff)
downloadrails-67e46e42549f1dac435041d68c05717d0a0f54b6.tar.gz
rails-67e46e42549f1dac435041d68c05717d0a0f54b6.tar.bz2
rails-67e46e42549f1dac435041d68c05717d0a0f54b6.zip
Use the correct connection for reset_pk_sequence
When a fs.model_class.connection uses a different database than connection, connection.reset_pk_sequence will fail with an exception causing fixture load to rollback. This is reproducible for any ActiveRecord::Base class that calls establish_connection with a different database.
-rw-r--r--activerecord/lib/active_record/fixtures.rb8
1 files changed, 3 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb
index 739be524da..1bfdfb6608 100644
--- a/activerecord/lib/active_record/fixtures.rb
+++ b/activerecord/lib/active_record/fixtures.rb
@@ -539,12 +539,10 @@ module ActiveRecord
conn.insert_fixture(row, fixture_set_name)
end
end
- end
- # Cap primary key sequences to max(pk).
- if connection.respond_to?(:reset_pk_sequence!)
- fixture_sets.each do |fs|
- connection.reset_pk_sequence!(fs.table_name)
+ # Cap primary key sequences to max(pk).
+ if conn.respond_to?(:reset_pk_sequence!)
+ conn.reset_pk_sequence!(fs.table_name)
end
end
end