fix job queue operation with FKs, RT#13971
[freeside.git] / FS / FS / Schema.pm
index b8d7cdc..bc9d37a 100644 (file)
@@ -3,7 +3,7 @@ package FS::Schema;
 use vars qw(@ISA @EXPORT_OK $DEBUG $setup_hack %dbdef_cache);
 use subs qw(reload_dbdef);
 use Exporter;
-use DBIx::DBSchema 0.43; #0.43 for foreign keys
+use DBIx::DBSchema 0.44; #for foreign keys with MATCH / ON DELETE/UPDATE
 use DBIx::DBSchema::Table;
 use DBIx::DBSchema::Column;
 use DBIx::DBSchema::Index;
@@ -1138,9 +1138,10 @@ sub tables_hashref {
                           { columns    => [ 'invnum' ],
                             table      => 'cust_bill_void',
                           },
-                          { columns    => [ 'pkgnum' ],
-                            table      => 'cust_pkg',
-                          },
+                          #pkgnum 0 and -1 are used for special things
+                          #{ columns    => [ 'pkgnum' ],
+                          #  table      => 'cust_pkg',
+                          #},
                           { columns    => [ 'pkgpart_override' ],
                             table      => 'part_pkg',
                             references => [ 'pkgpart' ],
@@ -2389,7 +2390,7 @@ sub tables_hashref {
       'index'        => [ [ 'billpaynum' ], [ 'billpkgnum' ], ],
       'foreign_keys' => [
                           { columns    => [ 'billpaynum' ],
-                            table      => 'cust_bill_pay_batch',
+                            table      => 'cust_bill_pay',
                           },
                           { columns    => [ 'billpkgnum' ],
                             table      => 'cust_bill_pkg',
@@ -3953,6 +3954,7 @@ sub tables_hashref {
       'foreign_keys' => [
                           { columns    => [ 'jobnum' ],
                             table      => 'queue',
+                            on_delete  => 'CASCADE',
                           },
                         ],
     },
@@ -3973,6 +3975,7 @@ sub tables_hashref {
                           { columns    => [ 'depend_jobnum' ],
                             table      => 'queue',
                             references => [ 'jobnum' ],
+                            on_delete  => 'CASCADE',
                           },
                         ],
     },
@@ -4903,7 +4906,7 @@ sub tables_hashref {
 
         #currently only u4:
         # terminating number (as opposed to dialed destination)
-        'dst_term',    'varchar',  'NULL', $char_d, \"''", '',
+        'dst_term',    'varchar',  'NULL', $char_d, '', '',
 
         #these don't seem to be logged by most of the SQL cdr_* modules
         #except tds under sql-illegal names, so;
@@ -5843,7 +5846,7 @@ sub tables_hashref {
         'statustext', 'varchar', 'NULL', $char_d, '', '',
       ],
       'primary_key' => 'upgradenum',
-      'unique' => [ [ 'upgradenum' ] ],
+      'unique' => [],
       'index' => [ [ 'upgrade' ] ],
     },