From 5f17ceb48af0f40a0df0fd953c90a81cce8e8f8c Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Thu, 10 Aug 2017 11:20:29 +0200 Subject: [PATCH] Fixed issue #1261 - Adding foreign keys for inconsistent PG tables breaks update. --- db/migrate/20170531144425_foreign_keys.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/db/migrate/20170531144425_foreign_keys.rb b/db/migrate/20170531144425_foreign_keys.rb index b38e3ab71..64bcedab0 100644 --- a/db/migrate/20170531144425_foreign_keys.rb +++ b/db/migrate/20170531144425_foreign_keys.rb @@ -1,4 +1,6 @@ class ForeignKeys < ActiveRecord::Migration + disable_ddl_transaction! + def change # return if it's a new setup @@ -217,10 +219,12 @@ class ForeignKeys < ActiveRecord::Migration ] foreign_keys.each do |foreign_key| - begin - ActiveRecord::Migration.add_foreign_key(*foreign_key) - rescue => e - Rails.logger.error "Inconsistent data status detected while adding foreign key '#{foreign_key.inspect}': #{e.message}" + ActiveRecord::Base.transaction do + begin + add_foreign_key(*foreign_key) + rescue => e + Rails.logger.error "Inconsistent data status detected while adding foreign key '#{foreign_key.inspect}': #{e.message}" + end end end end