X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-upgrade;h=aca545b843975eab54d25c1dd3e1c450c0709a63;hb=51a651e4f6c97dc18132f937c8e4c3b61a94bfcd;hp=f4ff1c28ee0131fe62d52d1a032e534720ce0550;hpb=624b2d44625f69d71175c3348cae635d580c890b;p=freeside.git diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade index f4ff1c28e..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; @@ -61,6 +61,50 @@ if (dbdef->table('cust_main')->column('agent_custid') && ! $opt_s) { if (dbdef->table('h_cust_main')); } +if ( dbdef->table('cgp_rule_condition') && + dbdef->table('cgp_rule_condition')->column('condition') + ) +{ + push @bugfix, + "ALTER TABLE ${_}cgp_rule_condition RENAME COLUMN condition TO conditionname" + for '', 'h_'; + +} + +# 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"; +} elsif ( @bugfix ) { + + foreach my $statement ( @bugfix ) { + warn "$statement\n"; + $dbh->do( $statement ) + 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); + +} + #you should have run fs-migrate-part_svc ages ago, when you upgraded #from 1.3 to 1.4... if not, it needs to be hooked into -upgrade here or #you'll lose all the part_svc settings it migrates to part_svc_column @@ -83,10 +127,10 @@ unless ( driver_name =~ /^mysql/i ) { if ( $DRY_RUN ) { print - join(";\n", @bugfix, @statements ). ";\n"; + join(";\n", @statements ). ";\n"; exit; } else { - foreach my $statement ( @bugfix, @statements ) { + foreach my $statement ( @statements ) { warn "$statement\n"; $dbh->do( $statement ) or die "Error: ". $dbh->errstr. "\n executing: $statement"; @@ -163,11 +207,21 @@ unless ( $DRY_RUN || $opt_s ) { $dbh->commit or die $dbh->errstr; $dbh->disconnect or die $dbh->errstr; +$FS::UID::AutoCommit = 1; + $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;