rt 4.2.16
[freeside.git] / rt / share / html / Install / Initialize.html
index 0b9ed6d..a704833 100644 (file)
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
 %#                                          <sales@bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -73,6 +73,11 @@ if ( $Run ) {
 
     my @actions = split /,/, $RT::Installer->{DatabaseAction};
 
+    # RT::Handle's ISA is dynamical, so we need to unshift the right one.
+    my $class = 'DBIx::SearchBuilder::Handle::' .  RT->Config->Get('DatabaseType');
+    $class->require or die $UNIVERSAL::require::ERROR;
+    unshift @RT::Handle::ISA, $class;
+
     my $sysdbh = DBI->connect(
         RT::Handle->SystemDSN,
         $RT::Installer->{InstallConfig}{DatabaseAdmin},
@@ -110,17 +115,18 @@ if ( $Run ) {
                 ($status, $msg) = RT::Handle->InsertACL( $dbh );
             }
             elsif ( $action eq 'coredata' ) {
-                $RT::Handle = new RT::Handle;
+                $RT::Handle = RT::Handle->new;
                 $RT::Handle->dbh( undef );
                 RT::ConnectToDatabase();
                 RT::InitLogging();
+                RT::InitClasses();
                 ($status, $msg) = $RT::Handle->InsertInitialData;
             }
             elsif ( $action eq 'insert' ) {
-                $RT::Handle = new RT::Handle;
+                $RT::Handle = RT::Handle->new;
                 RT::Init();
                 my $file = $RT::EtcPath . "/initialdata";
-                ($status, $msg) = $RT::Handle->InsertData( $file );
+                ($status, $msg) = $RT::Handle->InsertData( $file, undef, disconnect_after => 0 );
             }
             unless ( $status ) {
                 push @errors, loc('ERROR: [_1]', $msg);