#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/convert_whmxfer_to_sqlite Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited package scripts::convert_whmxfer_to_sqlite; use strict; use Whostmgr::Transfers::Session::Config (); use Whostmgr::Transfers::SessionBase (); use Cpanel::MysqlUtils::Connect (); exit( __PACKAGE__->script() ) unless caller(); sub script { my $sessionbase = Whostmgr::Transfers::SessionBase->new(); my $sqlite_dbh = $sessionbase->get_master_dbh(); my $mysql_dbh = Cpanel::MysqlUtils::Connect::get_dbi_handle(); my $has_db = $mysql_dbh->selectall_arrayref("SHOW DATABASES LIKE 'whmxfer';"); return if !$has_db->[0]; my $ref = $mysql_dbh->selectall_hashref( "select * from whmxfer.sessions;", 'sessionid' ); foreach my $sessionid ( sort keys %$ref ) { next if !-d $Whostmgr::Transfers::Session::Config::SESSION_DIR . '/' . $sessionid; my $row = $ref->{$sessionid}; my $cols = join( ',', map { $sqlite_dbh->quote($_) } keys %{$row} ); my $values = join( ',', map { $sqlite_dbh->quote($_) } values %{$row} ); $sqlite_dbh->do("INSERT INTO sessions ($cols) VALUES($values);"); } $mysql_dbh->do("DROP DATABASE whmxfer;"); return 0; }