aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorVipul A M <vipulnsward@gmail.com>2015-01-14 18:31:30 +0530
committerVipul A M <vipulnsward@gmail.com>2015-01-14 21:36:58 +0530
commit4ae59ebee8d404def8f9f7c716d1869fb7bb6f01 (patch)
tree6a1de52aacc51db92782d1dc5e1ad8d83fe8220d /activerecord/lib/active_record
parent850159bd2c5e1e108d0256dd05424bbbf7926b59 (diff)
downloadrails-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.rb6
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|