diff options
author | levinse <levinse> | 2011-07-09 02:59:49 +0000 |
---|---|---|
committer | levinse <levinse> | 2011-07-09 02:59:49 +0000 |
commit | 45191e95387a76195ec735dddd27be8ed7d2b8c7 (patch) | |
tree | e90ff05e6a7c7313b4da167bb354b568240f6dd1 /FS/bin/freeside-upgrade | |
parent | b4dc48b659f32cab30f96d39568fad9715212a4e (diff) |
custom fields, RT11714
Diffstat (limited to 'FS/bin/freeside-upgrade')
-rwxr-xr-x | FS/bin/freeside-upgrade | 13 |
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; |