summaryrefslogtreecommitdiff
path: root/FS/bin/freeside-upgrade
diff options
context:
space:
mode:
authorlevinse <levinse>2011-07-09 02:59:49 +0000
committerlevinse <levinse>2011-07-09 02:59:49 +0000
commit45191e95387a76195ec735dddd27be8ed7d2b8c7 (patch)
treee90ff05e6a7c7313b4da167bb354b568240f6dd1 /FS/bin/freeside-upgrade
parentb4dc48b659f32cab30f96d39568fad9715212a4e (diff)
custom fields, RT11714
Diffstat (limited to 'FS/bin/freeside-upgrade')
-rwxr-xr-xFS/bin/freeside-upgrade13
1 files changed, 13 insertions, 0 deletions
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index e11a0a7fe..16c30d9cf 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -127,6 +127,19 @@ my @statements = dbdef->sql_update_schema( dbdef_dist(datasrc),
{ 'nullify_default' => 1, },
);
+#### NEW CUSTOM FIELDS (prevent columns from being dropped by upgrade)
+my $cfsth = $dbh->prepare("SELECT * FROM part_virtual_field")
+ or die $dbh->errstr;
+$cfsth->execute or die $cfsth->errstr;
+my $cf;
+# likely a very inefficient implementation of this
+while ( $cf = $cfsth->fetchrow_hashref ) {
+ my $tbl = $cf->{'dbtable'};
+ my $name = $cf->{'name'};
+ @statements = grep { $_ !~ /^\s*ALTER\s+TABLE\s+$tbl\s+DROP\s+COLUMN\s+cf_$name\s*$/i }
+ @statements;
+}
+
@statements =
grep { $_ !~ /^CREATE +INDEX +h_queue/i } #useless, holds up queue insertion
@statements;