summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-02-14 09:02:48 -0800
committerIvan Kohler <ivan@freeside.biz>2017-02-14 09:02:48 -0800
commit877a4eb85cb847bd314d6a9192fedb1dc35c5d02 (patch)
tree3499f1281dd7eee72c67dcfd93265536f6be5aa6
parentbd5c864f75fd5d4aaddd60d2ba1ebc15f14a9aa8 (diff)
fix FK upgrade for pkg_referral: remove records referencing non-existant customer packages
-rw-r--r--FS/FS/pkg_referral.pm15
1 files changed, 14 insertions, 1 deletions
diff --git a/FS/FS/pkg_referral.pm b/FS/FS/pkg_referral.pm
index 333c2bf..a5ac795 100644
--- a/FS/FS/pkg_referral.pm
+++ b/FS/FS/pkg_referral.pm
@@ -2,7 +2,7 @@ package FS::pkg_referral;
use strict;
use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs );
+use FS::Record qw( dbh );
@ISA = qw(FS::Record);
@@ -108,6 +108,19 @@ sub check {
$self->SUPER::check;
}
+sub _upgrade_schema {
+ my ($class, %opts) = @_;
+
+ my $sql = '
+ DELETE FROM pkg_referral WHERE NOT EXISTS
+ ( SELECT 1 FROM cust_pkg WHERE cust_pkg.pkgnum = pkg_referral.pkgnum )
+ ';
+
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ '';
+}
+
=back
=head1 BUGS