diff options
author | Vipul A M <vipulnsward@gmail.com> | 2015-01-14 18:31:30 +0530 |
---|---|---|
committer | Vipul A M <vipulnsward@gmail.com> | 2015-01-14 21:36:58 +0530 |
commit | 4ae59ebee8d404def8f9f7c716d1869fb7bb6f01 (patch) | |
tree | 6a1de52aacc51db92782d1dc5e1ad8d83fe8220d /activerecord/lib/active_record | |
parent | 850159bd2c5e1e108d0256dd05424bbbf7926b59 (diff) | |
download | rails-4ae59ebee8d404def8f9f7c716d1869fb7bb6f01.tar.gz rails-4ae59ebee8d404def8f9f7c716d1869fb7bb6f01.tar.bz2 rails-4ae59ebee8d404def8f9f7c716d1869fb7bb6f01.zip |
Fixes #18492
- Add check for not deleting previously created fixtures, to overcome sti fixtures from multiple files
- Added fixtures and fixtures test to verify the same
- Fixed wrong fixtures duplicating data insertion in same table
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/fixtures.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb index 10e9be20b5..fc9c0aa900 100644 --- a/activerecord/lib/active_record/fixtures.rb +++ b/activerecord/lib/active_record/fixtures.rb @@ -521,12 +521,16 @@ module ActiveRecord update_all_loaded_fixtures fixtures_map connection.transaction(:requires_new => true) do + deleted_tables = [] fixture_sets.each do |fs| conn = fs.model_class.respond_to?(:connection) ? fs.model_class.connection : connection table_rows = fs.table_rows table_rows.each_key do |table| - conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete' + unless deleted_tables.include? table + conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete' + end + deleted_tables << table end table_rows.each do |fixture_set_name, rows| |