summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2009-12-29 04:24:03 +0000
committerivan <ivan>2009-12-29 04:24:03 +0000
commit3291870fc63f98970353e9f631f3e542651f3421 (patch)
tree6d9d431acc4a42fd22c5b5cef3cd614b31086287
parent75d538ea20a76acd9810c7835d8dd4ae867ef01b (diff)
don't change h_queue.job type under non-mysql, takes forever on large dbs, RT#6946
-rwxr-xr-xFS/bin/freeside-upgrade11
1 files changed, 9 insertions, 2 deletions
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index 6ced37297..3882ffb2b 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -5,7 +5,7 @@ use vars qw($opt_d $opt_s $opt_q $opt_v $opt_r);
use vars qw($DEBUG $DRY_RUN);
use Getopt::Std;
use DBIx::DBSchema 0.31;
-use FS::UID qw(adminsuidsetup checkeuid datasrc ); #getsecrets);
+use FS::UID qw(adminsuidsetup checkeuid datasrc driver_name); #getsecrets);
use FS::CurrentUser;
use FS::Schema qw( dbdef dbdef_dist reload_dbdef );
use FS::Misc::prune qw(prune_applications);
@@ -61,9 +61,16 @@ if (dbdef->table('cust_main')->column('agent_custid') && ! $opt_s) {
#you'll lose all the part_svc settings it migrates to part_svc_column
my @statements =
- grep { $_ !~ /^CREATE +INDEX +h_queue/ } #useless, holds up queue insertion
+ grep { $_ !~ /^CREATE +INDEX +h_queue/i } #useless, holds up queue insertion
dbdef->sql_update_schema( dbdef_dist(datasrc), $dbh );
+unless ( driver_name =~ /^mysql/i ) {
+ #not necessary under non-mysql, takes forever on big db
+ @statements =
+ grep { $_ !~ /^ *ALTER +TABLE +h_queue +ALTER +COLUMN +job +TYPE +varchar\(512\) *$/ }
+ @statements;
+}
+
if ( $DRY_RUN ) {
print
join(";\n", @bugfix, @statements ). ";\n";