]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 577577: Make bz_drop_fk be tolerant of SQL failure
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Thu, 8 Jul 2010 23:44:27 +0000 (16:44 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Thu, 8 Jul 2010 23:44:27 +0000 (16:44 -0700)
r=mkanat, a=mkanat (module owner)

Bugzilla/DB.pm

index 830d2835e781421dbf11fd6f042aa395c78d44a2..92d4e0c11c84a808a7a84f0bc8900358a3ee83df 100644 (file)
@@ -745,8 +745,14 @@ sub bz_drop_fk {
         print get_text('install_fk_drop',
                        { table => $table, column => $column, fk => $def })
             . "\n" if Bugzilla->usage_mode == USAGE_MODE_CMDLINE;
-        my @sql = $self->_bz_real_schema->get_drop_fk_sql($table,$column,$def);
-        $self->do($_) foreach @sql;
+        my @statements = 
+            $self->_bz_real_schema->get_drop_fk_sql($table,$column,$def);
+        foreach my $sql (@statements) {
+            # Because this is a deletion, we don't want to die hard if
+            # we fail because of some local customization. If something
+            # is already gone, that's fine with us!
+            eval { $self->do($sql); } or warn "Failed SQL: [$sql] Error: $@";
+        }
         delete $col_def->{REFERENCES};
         $self->_bz_real_schema->set_column($table, $column, $col_def);
         $self->_bz_store_real_schema;