Please rate how useful you found this document: 
Average: 1.7 (3 votes)

Overview

According to the Upgrade Road Map, this document explains the standard procedure to upgrade to ProcessMaker versions 3.7.x from the following ProcessMaker versions:

  • 3.2.2 or 3.2.3
  • 3.3.x
  • 3.4.x
  • 3.5.x
  • 3.6.x Minor Release
  • 3.7.x Point Release

Refer to the following sections to upgrade from ProcessMaker versions 3.2.2, 3.2.3, 3.3.x, 3.4.x, 3.5.x or 3.6.x to ProcessMaker 3.7.x:

Recommendations to Upgrade to ProcessMaker 3.7.x

To upgrade from ProcessMaker 3.2.2, 3.2.3, 3.3.x, 3.4.x, 3.5.x, or 3.6.x to the latest ProcessMaker 3.7.x in point release in either Linux or Windows platforms, take into account the following considerations:

  • A ProcessMaker Point Release means an upgrade from one version to another one in the ProcessMaker 3.7.x range.
  • If upgrading to a ProcessMaker version with PHP 7.x, there is a PHP error with Memcache. Due to this error, to decrease the failure number, it is recommended to increase memcached.sess_lock_retries to 50: memcached.sess_lock_retries = 50; Which is located at: /etc/php.d/50-memcached.ini
  • ProcessMaker upgrade makes changes in the source code. ProcessMaker services and tasks must be stopped, so this action should be planned and done when ProcessMaker is not being used.

  • JOBS_PENDING and JOBS_FAILED tables must not contain any task. To clean all pending tasks in these tables, use this guide.

  • Before upgrading, update values in the CONTENT table only if upgrading from a ProcessMaker 3.2.x version to a Point Release such as from ProcessMaker 3.2.3 to ProcessMaker 3.7.x. Follow the next steps to update values in the CONTENT table:

  1. Log on to MySQL as the "root" user (or as the user listed in the shared/sites/workspace/db.php file):

    mysql -u root -p
  2. Switch to workspace's database (which is named wf_workflow by default):

    USE database;

    Note: To see a list of the available databases, use: SHOW DATABASES;

  3. Issue the following two commands to update values in the CONTENT table:

    UPDATE CONTENT SET CON_VALUE = 'none' WHERE CON_CATEGORY = 'WEE_DESCRIPTION' AND CON_LANG = 'en' AND CON_VALUE = '';
      UPDATE CONTENT SET CON_VALUE = 'untitled'
      WHERE CON_CATEGORY IN ('WEE_DESCRIPTION', 'WEE_TITLE', 'DYN_TITLE', 'OUT_DOC_TITLE', 'REP_TAB_TITLE', 'TRI_TITLE')
      AND CON_VALUE = '' AND CON_LANG = 'en';

    If more workspaces were created, then issue these same commands for each workspace database.

  4. Exit MySQL:

    EXIT;
  • After upgrading, add the Clean web-entries option in the Task Scheduler table. For this, use the correct path and workspace as follows: INSERT INTO `SCHEDULER` (`title`, `startingTime`, `endingTime`, `everyOn`, `interval`, `description`, `expression`, `body`, `type`, `category`, `system`, `timezone`, `enable`, `creation_date`, `last_update`, `default_value`) VALUES('ID_CLEAN_WEBENTRIES', NULL, NULL, '1', 'week', 'ID_CLEAN_WEBENTRIES_DESC', '0 20 * * 5', 'su -s /bin/sh -c \"php /opt/processmaker/workflow/engine/bin/webentriescron.php +wworkflow +force +async\"', 'shell', 'case_actions', 1, NULL, 0, NOW(), NOW(), '{\"startingTime\":null,\"endingTime\":null,\"everyOn\":\"1\",\"interval\":\"week\",\"expression\":\"0 20 * * 5\",\"timezone\":null}');

Steps to Upgrade to ProcessMaker 3.7.x

Steps to upgrade from ProcessMaker 3.2.2, 3.2.3, 3.3.x, 3.4.x, 3.5.x, 3.6.x or 3.7.x to the latest ProcessMaker 3.7.x point release based on these supported operating systems:

Linux

Follow these steps to upgrade to ProcessMaker 3.7.x in Linux platforms, which involves the Apache and NGINX web servers:

  1. In the terminal, log on as root or with the root privileges:

    su or: sudo su -
  2. Copy the processmaker-3.7.x.tar.gz file to the /opt directory:

    cp processmaker-3.7.x.tar.gz /opt/
  3. Overwrite any existing files in the /opt directory:

    cd /opt tar -xzvf processmaker-3.7.x.tar.gz
  4. Configure the permissions for the processmaker directory:

    chmod -R 770 processmaker/
  5. Give permission to access the following files in the /processmaker directory:

    cd processmaker chmod -R 775 bootstrap bootstrap/cache config framework cd thirdparty/html2ps_pdf/ chmod -R 775 cache/ out/ temp/
  6. Depending on the supported stacks, set the Apache or NGINX user as the owner of the files within the processmaker directory:

    chown -R apache:apache processmaker

    or nginx:

    chown -R nginx:nginx processmaker
  7. Upgrade ProcessMaker files, the ProcessMaker database, and the translation files as described at ProcessMaker Command:

    ./processmaker upgrade [workspace]

    Warning: In case of a Point Release upgrade, to avoid downtime, DO NOT use this command if the ProcessMaker version to upgrade does not contain database upgrades. Review our current Release Notes in the front page (previous versions are in the same document) to know if the ProcessMaker version has changes in its database.

  8. To update the PM_DELETECASE permission, run the following MySQL query:

    UPDATE RBAC_PERMISSIONS SET PER_STATUS = 1 WHERE PER_UID = '00000000000000000000000000000013';
  9. To update the PM_FOLDERS_ALL permission, run the following MySQL query:

    UPDATE RBAC_PERMISSIONS SET PER_CODE = 'PM_FOLDERS_ALL' WHERE PER_UID = '00000000000000000000000000000015';
  10. In a ProcessMaker point release, consider the following:

    Note: After every command execution, verify if there are error or warning messages. This may be due to wrong file permissions.

    • Check if ProcessMaker files have the correct owner and permissions.
    • Enable the Supervisor service with these commands:
    • $ sudo supervisorctl reread
      $ sudo supervisorctl update
      $ sudo supervisorctl stop all
      $ sudo supervisorctl start all
      $ sudo supervisorctl status all

      Note: To stop properly running threads, additional to stopping the Supervisor service, find and kill duplicated processes with the following command:

      for i in `ps aux|grep artisan|awk '{print $2}'`; do kill $i; done;
    • Restart the Supervisor service:
    • $ sudo systemctl stop supervisord.service
      $ sudo systemctl start supervisord.service
      $ sudo systemctl status supervisord.service
  11. Depending on the supported stacks, set the ProcessMaker Task Scheduler:

    Warning: It is a bad practice to manually modify data in the Task Scheduler table (SCHEDULER) because it modifies the default database structure. As a workaround, run the following command ./processmaker database-upgrade {workspace} to verify the SCHEDULER table integrity and to add default values if necessary.

Windows

Follow these steps to upgrade to ProcessMaker 3.7.x in Windows platforms:

  1. Copy the processmaker-3.7.x.tar.gz file to the C:\opt directory.

  2. Use a program like WinRAR or 7-Zip to extract processmaker-3.6.x.tar.gz to the C:\opt directory.

  3. Start the command prompt as the administrator, and then issue the commands in the next steps.

  4. Go to the C:\opt\processmaker directory:

    cd C:\opt\processmaker
  5. Upgrade ProcessMaker files, the ProcessMaker database, and the translation files as described at ProcessMaker Command:

    php -f processmaker upgrade [workspace]

    Warning: In case of a Point Release upgrade, to avoid downtime, DO NOT use this command if the ProcessMaker version to upgrade does not contain database upgrades. Review our current Release Notes in the front page (previous versions are in the same document) to know if the ProcessMaker version has changes in its database.

  6. To update the PM_DELETECASE permission, run the following MySQL query:

    UPDATE RBAC_PERMISSIONS SET PER_STATUS = 1 WHERE PER_UID = '00000000000000000000000000000013';
  7. To update the PM_FOLDERS_ALL permission, run the following MySQL query:

    UPDATE RBAC_PERMISSIONS SET PER_CODE = 'PM_FOLDERS_ALL' WHERE PER_UID = '00000000000000000000000000000015';
  8. In a ProcessMaker point release, consider the following:

    • Check if ProcessMaker files have the correct owner and permissions.

    • The Supervisor service must be configured as a Windows service. Use the NSSM software.

    • Stop and restart the service from the local Windows Services in the Control Panel.

  9. Set the ProcessMaker Task Scheduler: Stack 270 (Configuration on Windows Server).

    Warning: It is a bad practice to manually modify data in the Task Scheduler table (SCHEDULER) because it modifies the default database structure. As a workaround, run the following command php -f processmaker database-upgrade {workspace} to verify the SCHEDULER table integrity and to add default values if necessary.