We have been attempting to migrate our osTicket system from one dedicated server to another, and we continue to run into problems.
EXISTING system:
osTicket v1.15.7
Windows Server 2019
mySQL 5.6
PHP 7.2.7
TARGET system:
osTicket 1.17.2
Windows Server 2019
mySQL 8.0
PHP 8.0.25
This is the process we have generally followed each time the migration has failed.
On TARGET, perform clean install of osTicket 1.17.2. Site is up and running in default state prior to next steps. Database name established as osticketdb.
On EXISTING, dump the osTicket database (osticketdb) using mysqldump via command line. Command used in most recent attempt was mysqldump -u root -p osticketdb --routines --triggers --events > C:<dumpfilename>.
Copy dump file to TARGET.
On TARGET, use mySQL Workbench 8.0 Data Import to import EXISTING_osticketdb to TARGET_osticketdb. Import completes successfully.
On TARGET, restart site from IIS.
Upon opening site from IIS, the site presents the upgrader.
Running the upgrader fails immediately with this message:
Upgrade aborted due to errors. Any errors at this stage are fatal.
Internal error occurred - Get technical help!
For details - please view System Logs or check your email.
Three events appear in the System Logs:
(a) Upgrader - c37e1656 applied. Patch add62892-c37e1656 applied successfully.
(b) [core]: Upgrader Error
[CREATE TABLE ost_plugin_instance
( id
int(11) unsigned NOT NULL AUTO_INCREMENT, plugin_id
int(11) unsigned NOT NULL, flags
int(10) NOT NULL DEFAULT 0, name
varchar(128) NOT NULL DEFAULT '', config
text DEFAULT NULL, notes
text DEFAULT NULL, created
datetime NOT NULL, updated
datetime DEFAULT NULL, PRIMARY KEY (id
), KEY plugin_id
(plugin_id
) ) DEFAULT CHARSET=utf8] Table 'ost_plugin_instance' already exists
(c) DB Error #1054
[SELECT A1.* FROM ost_email_account
A1 WHERE A1.type
= 'smtp' AND A1.type
= 'smtp' AND A1.email_id
= 4] Unknown column 'A1.type' in 'where clause'<br /> <br /> ---- Backtrace ----<br /> #0 C:\inetpub\wwwroot\osTicket\include\mysqli.php(207): osTicket->logDBError()<br /> #1 C:\inetpub\wwwroot\osTicket\include\class.orm.php(3482): db_query()<br /> #2 C:\inetpub\wwwroot\osTicket\include\class.orm.php(3529): MySqlExecutor->execute()<br /> #3 C:\inetpub\wwwroot\osTicket\include\class.orm.php(2010): MySqlExecutor->getArray()<br /> #4 C:\inetpub\wwwroot\osTicket\include\class.orm.php(2054): ModelInstanceManager->{closure}()<br /> #5 C:\inetpub\wwwroot\osTicket\include\class.orm.php(2033): CallbackSimpleIterator->next()<br /> #6 C:\inetpub\wwwroot\osTicket\include\class.orm.php(2042): CallbackSimpleIterator->rewind()<br /> #7 C:\inetpub\wwwroot\osTicket\include\class.orm.php(1713): CallbackSimpleIterator->valid()<br /> #8 C:\inetpub\wwwroot\osTicket\include\class.orm.php(1723): CachedResultSet->fillTo()<br /> #9 C:\inetpub\wwwroot\osTicket\include\class.orm.php(1337): CachedResultSet->asArray()<br /> #10 C:\inetpub\wwwroot\osTicket\include\class.orm.php(1360): QuerySet->all()<br /> #11 C:\inetpub\wwwroot\osTicket\include\class.orm.php(606): QuerySet->one()<br /> #12 C:\inetpub\wwwroot\osTicket\include\class.orm.php(381): VerySimpleModel::lookup()<br /> #13 C:\inetpub\wwwroot\osTicket\include\class.orm.php(417): VerySimpleModel->get()<br /> #14 C:\inetpub\wwwroot\osTicket\include\class.email.php(210): VerySimpleModel->get()<br /> #15 C:\inetpub\wwwroot\osTicket\include\class.mailer.php(35): Email->getSmtpAccount()<br /> #16 C:\inetpub\wwwroot\osTicket\include\class.email.php(231): osTicket\Mail\Mailer->construct()<br /> #17 C:\inetpub\wwwroot\osTicket\include\class.email.php(245): Email->send()<br /> #18 C:\inetpub\wwwroot\osTicket\include\class.upgrader.php(204): Email->sendAlert()<br /> #19 C:\inetpub\wwwroot\osTicket\include\class.setup.php(115): StreamUpgrader->onError()<br /> #20 C:\inetpub\wwwroot\osTicket\include\class.setup.php(69): SetupWizard->abort()<br /> #21 C:\inetpub\wwwroot\osTicket\include\class.setup.php(44): SetupWizard->load_sql()<br /> #22 C:\inetpub\wwwroot\osTicket\include\class.upgrader.php(379): SetupWizard->load_sql_file()<br /> #23 C:\inetpub\wwwroot\osTicket\include\class.upgrader.php(112): StreamUpgrader->upgrade()<br /> #24 C:\inetpub\wwwroot\osTicket\include\ajax.upgrader.php(42): Upgrader->upgrade()<br /> #25 C:\inetpub\wwwroot\osTicket\include\class.dispatcher.php(153): UpgraderAjaxAPI->upgrade()<br /> #26 C:\inetpub\wwwroot\osTicket\include\class.dispatcher.php(40): UrlMatcher->dispatch()<br /> #27 C:\inetpub\wwwroot\osTicket\scp\ajax.php(326): Dispatcher->resolve()<br /> #28 {main}
We are obviously going about this the wrong way, but we are clueless as to what part of the approach is flawed, if not the entire process.
Any help appreciated.