- 1. ProcessMaker Upgrade Plan
- 2. Upgrading to ProcessMaker 2.5.x
- 3. Upgrading to ProcessMaker 3.2.2 or 3.2.3
- 4. Upgrading to ProcessMaker 3.3.x
- 5. Upgrading to ProcessMaker 3.4.x
- 6. Upgrading to ProcessMaker 3.5.x
- 7. Upgrading to ProcessMaker 3.6.x
- 8. Upgrading to ProcessMaker 3.7.x
- 9. Upgrading to ProcessMaker 3.8.x
Overview
According to the Upgrade Road Map, this document explains the standard procedure to upgrade to ProcessMaker versions 3.6.x from the following ProcessMaker versions:
- 3.2.2 or 3.2.3
- 3.3.x
- 3.4.x
- 3.5.x Minor Release
- 3.6.x Point Release
Refer to the following sections to upgrade from ProcessMaker versions 3.2.2, 3.2.3, 3.3.x or 3.4.x to ProcessMaker 3.4.x-3.6.x:
Recommendations to Upgrade to ProcessMaker 3.6.x
To upgrade from ProcessMaker 3.2.2, 3.2.3, 3.3.x, 3.4.x or 3.5.x to the latest ProcessMaker 3.6.x in point release in either Linux or Windows platforms, take into account the following considerations:
- A ProcessMaker Point Release means an upgrade from a version to another one in the ProcessMaker 3.6.x range.
- If you are 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
to50
: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
andJOBS_FAILED
tables must not contain any task. To clean all pending tasks in this tables, use this guide. -
Before upgrading, update values in the CONTENT table only if you are upgrading from a ProcessMaker 3.2.x version to a Point Release such as from ProcessMaker 3.2.3 to ProcessMaker 3.6.x. Follow the next steps to update values in the CONTENT table:
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 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; 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.
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_TASK_SCHEDULER_CLEAN_SELF', NULL, NULL, '1', 'week', 'ID_TASK_SCHEDULER_CLEAN_SELF_DESC', '0 0 * * 0,1,2,3,4,5,6', 'su -s /bin/sh -c \"php /opt/processmaker/workflow/engine/bin/cron.php clean-self-service-tables +wworkflow +force +async\"', 'shell', 'case_actions', 1, 'UTC', 0, '2021-02-02 18:48:01', '2021-02-02 18:48:01', '{\"startingTime\":null,\"endingTime\":null,\"everyOn\":\"1\",\"interval\":\"week\",\"expression\":\"0 0 * * 0,1,2,3,4,5,6\",\"timezone\":\"UTC\"}');
Steps to Upgrade to ProcessMaker 3.6.x
Steps 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.6.x point release based on these supported operating systems:
Linux
Follow these steps to upgrade to ProcessMaker 3.6.x in Linux platforms, which involves the Apache and NGINX web servers:
In the terminal, log on as root or with the root privileges:
su or:sudo su - Copy the
processmaker-3.6.x.tar.gz
file to the/opt
directory:cp processmaker-3.6.x.tar.gz /opt/ Overwrite any existing files in the
/opt
directory:cd /opt tar -xzvf processmaker-3.6.x.tar.gz Configure the permissions for the
processmaker
directory:chmod -R 770 processmaker/ 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/ 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 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.
As of ProcessMaker 3.4.6, to update the
PM_DELETECASE
permission, run the following MySQL query:UPDATE RBAC_PERMISSIONS SET PER_STATUS = 1 WHERE PER_UID = '00000000000000000000000000000013';As of ProcessMaker 3.4.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';-
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:
- Restart the Supervisor service:
$ sudo supervisorctl reread
$ sudo supervisorctl update
$ sudo supervisorctl stop all
$ sudo supervisorctl start all
$ sudo supervisorctl status allNote: To stop properly running threads, additional to stop the Supervisor, find and kill duplicated processes with the following command:
for i in `ps aux|grep artisan|awk '{print $2}'`; do kill $i; done;$ sudo systemctl stop supervisord.service
$ sudo systemctl start supervisord.service
$ sudo systemctl status supervisord.service -
Depending on the version of your server, set the ProcessMaker Task Scheduler:
Windows
Follow these steps to upgrade to ProcessMaker 3.6.x in Windows platforms:
Copy the
processmaker-3.6.x.tar.gz
file to theC:\opt
directory.Use a program like WinRAR or 7-Zip to extract
processmaker-3.6.x.tar.gz
to theC:\opt
directory.Start the command prompt as the administrator, and then issue the commands in the next steps.
Go to the
C:\opt\processmaker
directory:cd C:\opt\processmaker 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.
As of ProcessMaker 3.4.6, to update the
PM_DELETECASE
permission, run the following MySQL query:UPDATE RBAC_PERMISSIONS SET PER_STATUS = 1 WHERE PER_UID = '00000000000000000000000000000013';As of ProcessMaker 3.4.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';-
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.
-
Set the ProcessMaker Task Scheduler: Stack 270 (Configuration on Windows Server).