Hello,

I have a virtual machine running this:
php 5.6.39
mysqld 5.6.44
apache 2.4.39
osticket v1.9.14

and I need to migrate it to another VM running:
php 7.2.20
mysqld 5.6.44
apache 2.4.39_1
latest stable osticket

Can anyone tell me in what order I need to upgrade in order to accomplish this?
I can do all the upgrading (of everything, php, mysql etc) on the old VM if required,
but need to transfer the data to the new vm.
I guess this is done by exporting and re-uploading the database to the new vm.

Is there a documented or recommended way of doing this?

thanks

  1. On the new server setup a virtual host or site and make sure that it serves web pages.

  2. export the database on the old server.
    transfer it to the new one.
    import the database on the new server.
    create a db user (w/ password) and grant privs to the database on the new server.
    note: If you are using the Attachments::Filesystem plugin you will need to copy all your attachments to the new server. Make sure that you put them in the same relative place.

  3. download the latest osTicket download archive https://osticket.com/download
    Upload the files to the new server (where ever you want it to reside on the new server aka the site you created in step 1.).
    note: if you were running the Attachments::Filesystem plugin you will also need to install that.

  4. Copy the /include/ost-config.php from the old server to the new one.
    note: if the new db user and password is different on the new data base edit the file

  5. Log into the Agent panel and run the upgrader (it should run automagically when you log in as an admin)

  6. Once you are sure everything is up and running correctly (and not before) you can shut down the old site/server. You have a back up of the site anyway.

    ntozier

    I did all what you recommend, but I get various errors after clicking upgrade, all concerning ost_translation:

    here is the order they were emitted:

    DB Error #1146

    [SELECT A1.* FROM ost_translation A1 WHERE A1.type = 'article' AND A1.object_hash = 'cc78cd3b9390da92'] Table 'ost.ost_translation' doesn't exist

    SELECT A1.* FROM ost_translation A1 WHERE A1.lang = 'en_US' AND A1.type = 'phrase'] Table 'ost.ost_translation' doesn't exist

    then a stacktrace follows. I can post that if you think it'll help. I was careful to use the same collation (utf-8) on export as import.

    Is there anything I can do on the old or new server to fix?

    thanks,

    should add the ost_translation table mentioned isn't in the old osticket instance

    in the meantime, I removed the osdesk install and tried to upgrade to the other supported version (1.10.6). First I'd get the error Valid CSRF Token Required, so looked that one up and got round it by adding session.auto_start=1 to php.ini.

    But now running the updater gives the following error:

    [/** @signature 1ee831c854fe9f35115a3e672916bb91 @version v1.10.0 @title Make editable content translatable and add queues This patch adds support for translatable administratively editable content, such as help topic names, department and group names, site page and faq content, etc. This patch also transitions from the timezone table to the Olson timezone database available in PHP 5.3. */ ALTER TABLE ost_attachment ADD lang varchar(16) AFTER inline] Duplicate column name 'lang'

      f451
      looks like there is "Duplicate column name 'lang'" so you would need to remove it and see if that fixes your issues
      otherwise, I would try a fresh install on a new server and import the database, make sure your plugins and language packs are installed.

      ntozier
      I eventually fixed this. Maybe put this in a FAQ for migration php56-php72?

      What was done:
      1. create vm with latest apache, php72, mysql57
      2. on old vm (still running php56), upgrade osticket to latest maintanance release (v.1.10) and make sure it all works.
      3. on old vm, upgrade the newly installed v.1.10 release with latest 1.12 release, make sure it all works. There might be the odd error but it won't break the upgrade process. This is all stil in a php56 environment.
      4. export the database here with mysqldump and upload it to the new vm's mysql server
      5. on the old vm, turn off apache and mysqld and tar up the web directory for osticket.
      6. upload this to the new web directory, restart mysql and apache.

      The logic being that the osticket upgrade process best happening in a php56 environment as both the version the old vm was on and the latest osticket version can both run in php56.

      If there is a problem upgrading under non php 5.6 then you would want to open an issue report at github and include errors etc so that it can be fixed.

      Write a Reply...