From 0a943db6355ef9375db7d567eef52d783df1d68a Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Mon, 29 Aug 2011 15:23:27 -0700 Subject: Bug 629529: Make SQLite installs able to use jobqueue.pl r=glob, a=mkanat --- Bugzilla/DB/Sqlite.pm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'Bugzilla/DB/Sqlite.pm') diff --git a/Bugzilla/DB/Sqlite.pm b/Bugzilla/DB/Sqlite.pm index fab1e3c87..fb6aaba97 100644 --- a/Bugzilla/DB/Sqlite.pm +++ b/Bugzilla/DB/Sqlite.pm @@ -25,6 +25,7 @@ use base qw(Bugzilla::DB); use Bugzilla::Constants; use Bugzilla::Error; +use Bugzilla::Install::Util qw(install_string); use DateTime; use POSIX (); @@ -246,6 +247,46 @@ sub sql_string_until { # bz_ methods # ############### +sub bz_setup_database { + my $self = shift; + $self->SUPER::bz_setup_database(@_); + + # If we created TheSchwartz tables with COLLATE bugzilla (during the + # 4.1.x development series) re-create them without it. + my @tables = $self->bz_table_list(); + my @ts_tables = grep { /^ts_/ } @tables; + my $drop_ok; + foreach my $table (@ts_tables) { + my $create_table = + $self->_bz_real_schema->_sqlite_create_table($table); + if ($create_table =~ /COLLATE bugzilla/) { + if (!$drop_ok) { + _sqlite_jobqueue_drop_message(); + $drop_ok = 1; + } + $self->bz_drop_table($table); + $self->bz_add_table($table); + } + } +} + +sub _sqlite_jobqueue_drop_message { + # This is not translated because this situation will only happen if + # you are updating from a 4.1.x development version of Bugzilla using + # SQLite, and we don't want to maintain this string in strings.txt.pl + # forever for just this one uncommon circumstance. + print <installation_answers->{NO_PAUSE}) { + print install_string('enter_or_ctrl_c'); + getc; + } +} + # XXX This needs to be implemented. sub bz_explain { } -- cgit v1.2.3-24-g4f1b