diff options
author | Montana Low <montanalow@gmail.com> | 2015-01-30 13:56:37 -0800 |
---|---|---|
committer | Greg Molnar <molnargerg@gmail.com> | 2015-03-01 08:45:14 +0000 |
commit | 67e46e42549f1dac435041d68c05717d0a0f54b6 (patch) | |
tree | aa42d6707dd64842bd1ca76819f2fb2a319ddedc | |
parent | 28fccad2c4ca8159b1c827026cdd09de9c5a3669 (diff) | |
download | rails-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.rb | 8 |
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 |