X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-upgrade;h=e22afa26c33374ede8f88e65572ed00100b21fc3;hb=921c62774b26197ed24ca983859fe00b119f82fb;hp=f4ff1c28ee0131fe62d52d1a032e534720ce0550;hpb=adb31d819cff848d599bdb777c23144d1801b8a7;p=freeside.git diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade index f4ff1c28e..e22afa26c 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 upgrade_sqlradius); my $start = time; @@ -61,6 +61,35 @@ 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_'; + +} + +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 +112,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,6 +192,8 @@ 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;