summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-03-10 11:58:00 -0800
committerIvan Kohler <ivan@freeside.biz>2017-03-10 11:58:00 -0800
commit4b0392ecbf8f912ce1499cd243b78cb51512aef8 (patch)
tree8762ef91945e20d114df647a743bbef105c89f4d
parentd04e30fbf7c74faf746c866e73ab92d76b172226 (diff)
fix upgrade for dangling queue_depend, RT#75117
-rw-r--r--FS/FS/Upgrade.pm1
-rw-r--r--FS/FS/queue_depend.pm18
2 files changed, 18 insertions, 1 deletions
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 0a083dbae..8f751eef6 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -571,6 +571,7 @@ sub upgrade_schema_data {
'cust_bill_pay_batch' => [],
'cust_event_fee' => [],
'radius_attr' => [],
+ 'queue_depend' => [],
#update records referencing removed things with their FKs
'cust_pkg' => [],
;
diff --git a/FS/FS/queue_depend.pm b/FS/FS/queue_depend.pm
index cd3f7872f..f21ed9946 100644
--- a/FS/FS/queue_depend.pm
+++ b/FS/FS/queue_depend.pm
@@ -1,7 +1,8 @@
package FS::queue_depend;
-use base qw(FS::Record);
+use base qw( FS::Record );
use strict;
+use FS::Record qw( dbh );
=head1 NAME
@@ -105,6 +106,21 @@ sub check {
=back
+=cut
+
+sub _upgrade_schema {
+ my ($class, %opts) = @_;
+
+ my $sql = '
+ DELETE FROM queue_depend WHERE NOT EXISTS
+ ( SELECT 1 FROM queue WHERE queue.jobnum = queue_depend.jobnum )
+ ';
+
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ '';
+}
+
=head1 BUGS
=head1 SEE ALSO