[freeside-commits] branch FREESIDE_4_BRANCH updated. 3951dc9619a5a0c5f148e89754ddd4ce54ede281

Ivan ivan at 420.am
Fri Feb 24 10:22:30 PST 2017


The branch, FREESIDE_4_BRANCH has been updated
       via  3951dc9619a5a0c5f148e89754ddd4ce54ede281 (commit)
      from  7e67fa95effacabe5380653ccdab3957f10931c0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3951dc9619a5a0c5f148e89754ddd4ce54ede281
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Fri Feb 24 10:22:29 2017 -0800

    fix upgrades when cust_pkg.change_to_pkgnum points to a package that was removed, RT#74825

diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 691d285..d401312 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -573,6 +573,8 @@ sub upgrade_schema_data {
     #remove records referencing removed things with their FKs
     'pkg_referral' => [],
     'cust_bill_pkg_discount' => [],
+    #update records referencing removed things with their FKs
+    'cust_pkg' => [],
   ;
 
   \%hash;
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index bd9ab81..3d54439 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -5565,6 +5565,23 @@ sub forward_emails {
 }
 
 # Used by FS::Upgrade to migrate to a new database.
+sub _upgrade_schema {  # class method
+  my ($class, %opts) = @_;
+
+  my $sql = '
+    UPDATE cust_pkg SET change_to_pkgnum = NULL
+      WHERE change_to_pkgnum IS NOT NULL
+        AND NOT EXISTS ( SELECT 1 FROM cust_pkg AS ctcp
+                           WHERE ctcp.pkgnum = cust_pkg.change_to_pkgnum
+                       )
+  ';
+
+  my $sth = dbh->prepare($sql) or die dbh->errstr;
+  $sth->execute or die $sth->errstr;
+  '';
+}
+
+# Used by FS::Upgrade to migrate to a new database.
 sub _upgrade_data {  # class method
   my ($class, %opts) = @_;
   $class->_upgrade_otaker(%opts);

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Upgrade.pm  |    2 ++
 FS/FS/cust_pkg.pm |   17 +++++++++++++++++
 2 files changed, 19 insertions(+)




More information about the freeside-commits mailing list