diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-02-14 09:02:48 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-02-14 09:02:48 -0800 |
commit | 877a4eb85cb847bd314d6a9192fedb1dc35c5d02 (patch) | |
tree | 3499f1281dd7eee72c67dcfd93265536f6be5aa6 | |
parent | bd5c864f75fd5d4aaddd60d2ba1ebc15f14a9aa8 (diff) |
fix FK upgrade for pkg_referral: remove records referencing non-existant customer packages
-rw-r--r-- | FS/FS/pkg_referral.pm | 15 |
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 |