X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2Fbin%2Ffreeside-upgrade;h=aca545b843975eab54d25c1dd3e1c450c0709a63;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hp=4a6fac29323363be5ba5e8a8adb04ea832c411c4;hpb=da99804133e55d5ce02402645b593a6de06d1947;p=freeside.git diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade index 4a6fac293..aca545b84 100755 --- a/FS/bin/freeside-upgrade +++ b/FS/bin/freeside-upgrade @@ -11,7 +11,7 @@ use FS::Schema qw( dbdef dbdef_dist reload_dbdef ); use FS::Misc::prune qw(prune_applications); use FS::Conf; use FS::Record qw(qsearch); -use FS::Upgrade qw(upgrade upgrade_sqlradius); +use FS::Upgrade qw(upgrade_schema upgrade_config upgrade upgrade_sqlradius); my $start = time; @@ -71,6 +71,21 @@ if ( dbdef->table('cgp_rule_condition') && } +# RT required field flag +# for consistency with RT schema: mysql is in CamelCase, +# pg is in lowercase, and they use different data types. +my ($t, $creq, $cdis) = + map { driver_name =~ /^mysql/i ? $_ : lc($_) } + ('CustomFields','Required','Disabled'); + +if ( dbdef->table($t) && + ! dbdef->table($t)->column($creq) ) { + push @bugfix, + "ALTER TABLE $t ADD COLUMN $creq ". + dbdef->table($t)->column($cdis)->type . + ' NOT NULL DEFAULT 0'; +} + if ( $DRY_RUN ) { print join(";\n", @bugfix ). ";\n"; @@ -82,6 +97,8 @@ if ( $DRY_RUN ) { or die "Error: ". $dbh->errstr. "\n executing: $statement"; } + upgrade_schema(); + dbdef_create($dbh, $dbdef_file); delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload reload_dbdef($dbdef_file); @@ -197,6 +214,14 @@ $dbh = adminsuidsetup($user); warn "Re-initialization with updated schema completed in ". (time-$start). " seconds\n"; # if $DEBUG; $start = time; +upgrade_config() + unless $DRY_RUN || $opt_s; + +$dbh->commit or die $dbh->errstr; + +warn "Config updates completed in ". (time-$start). " seconds\n"; # if $DEBUG; +$start = time; + upgrade() unless $DRY_RUN || $opt_s;