X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-upgrade;h=45d2709da29b87111e950d9c8bb36aaac26cb02e;hb=517ad7e0c5bd5a6329dfd3ef9c35f69afea9fc49;hp=5bd1415389648a8b0a107946f527241c7d748ac5;hpb=63973c641c4be00765fa27e55c57cc5b9aa4da19;p=freeside.git diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade index 5bd141538..45d2709da 100755 --- a/FS/bin/freeside-upgrade +++ b/FS/bin/freeside-upgrade @@ -1,8 +1,8 @@ #!/usr/bin/perl -w use strict; -use vars qw($opt_d $opt_s $opt_q $opt_v $opt_r); -use vars qw($DEBUG $DRY_RUN); +use vars qw( $opt_d $opt_s $opt_q $opt_v $opt_r $opt_c ); +use vars qw( $DEBUG $DRY_RUN ); use Getopt::Std; use DBIx::DBSchema 0.31; #0.39 use FS::UID qw(adminsuidsetup checkeuid datasrc driver_name); @@ -17,7 +17,7 @@ my $start = time; die "Not running uid freeside!" unless checkeuid(); -getopts("dqrs"); +getopts("dqrcs"); $DEBUG = !$opt_q; #$DEBUG = $opt_v; @@ -84,6 +84,13 @@ if ( dbdef->table('areacode') and } } +if ( dbdef->table('upgrade_journal') ) { + push @bugfix, "SELECT SETVAL( 'upgrade_journal_upgradenum_seq', + ( SELECT MAX(upgradenum) FROM upgrade_journal ) + ) + "; +} + if ( $DRY_RUN ) { print join(";\n", @bugfix ). ";\n"; @@ -107,7 +114,14 @@ if ( $DRY_RUN ) { #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 -my @statements = dbdef->sql_update_schema( dbdef_dist(datasrc), +my $conf = new FS::Conf; + +my $dbdef_dist = dbdef_dist( + datasrc, + { 'queue-no_history' => $conf->exists('queue-no_history') }, +); + +my @statements = dbdef->sql_update_schema( $dbdef_dist, $dbh, { 'nullify_default' => 1, }, ); @@ -147,6 +161,18 @@ unless ( driver_name =~ /^mysql/i ) { @statements; } +if ( $opt_c ) { + + @statements = + grep { $_ !~ /^ *ALTER +TABLE +(h_)?cdr /i } + @statements; + + @statements = + grep { $_ !~ /^ *CREATE +INDEX +(h_)?cdr\d+ /i } + @statements; + +} + if ( $DRY_RUN ) { print join(";\n", @statements ). ";\n"; @@ -305,7 +331,7 @@ freeside-upgrade - Upgrades database schema for new freeside verisons. =head1 SYNOPSIS - freeside-upgrade [ -d ] [ -r ] [ -s ] [ -q | -v ] + freeside-upgrade [ -d ] [ -r ] [ -c ] [ -s ] [ -q | -v ] =head1 DESCRIPTION @@ -330,6 +356,8 @@ Also performs other upgrade functions: [ -r ]: Skip sqlradius updates. Useful for occassions where the sqlradius databases may be inaccessible. + [ -c ]: Skip cdr and h_cdr updates. + [ -v ]: Run verbosely, sending debugging information to STDERR. This is the current default.