- Thu Jun 01, 2017 5:47 pm
#791753
ProcessMaker won't be able to upgrade to PM 3.2 or later if the MySQL password contains + (plus sign) or %## (percent sign followed by two numbers), because a code change added in PM 3.2 replaces these symbols in the password. These passwords are found in the files processmaker/shared/sites/WORKSPACE/db.php and processmaker/shared/sites/WORKSPACE/databases.php.
When trying to run the php processmaker upgrade or php processmaker database-upgrade command, the following error message will appear if the passwords contain these symbols:
Errors upgrading workspace workflow: [wrapped: connect failed [Native Error: Access denied for user 'database-name'@'host' (using password: YES)] [User Info: database-user]]
For example:
When trying to run the php processmaker upgrade or php processmaker database-upgrade command, the following error message will appear if the passwords contain these symbols:
Errors upgrading workspace workflow: [wrapped: connect failed [Native Error: Access denied for user 'database-name'@'host' (using password: YES)] [User Info: database-user]]
For example:
Code: Select all
To fix this problem, edit the processmaker/gulliver/thirdparty/creole/Creole.php file with a plain text editor (such as nano, gedit or Notepad++) and change lines 315-317 from:
# cd /opt/processmaker
# php processmaker upgrade
Checking files integrity...
checksum.txt not found, integrity check is not possible
Integrity check failed, do you want to continue the upgrade? [Y/n] y
Clearing cache...
Upgrading workspaces (1/1): workflow
> Updating database...
Errors upgrading workspace workflow: [wrapped: connect failed [Native Error: Access denied for user 'wf_workflow'@'localhost' (using password: YES)] [User Info: wf_workflow]]
Safe upgrade for files cached by the browser
Upgrade finished but there were errors upgrading workspaces.
Please check the log above to correct any issues.
Code: Select all
To:
if (!is_null($dsn)) {
$info['pass'] = urldecode($info['pass']);
}
Code: Select all
Then, it should be possible to use the php processmaker upgrade or php processmaker database-upgrade command and continue with the rest of the upgrade. /* comment out to fix bug with urldecode() replacing characters in password:
if (!is_null($dsn)) {
$info['pass'] = urldecode($info['pass']);
}
*/