Released: November 28, 2019
An issue with the request introspection of the API endpoint for checking in documents was causing server internal error (HTTP 500 error) has been fixed.
Database transaction improvements from the version 3.3 branch were backported. Document events now trigger inside the same database transaction as document changes. This change will ensure the expected behavior of other elements that rely on this event even under the most heavy system loads and severe database/network infrastructure problems.
The example LDAP file was improved. This is a community contributed file and not officially supported. For LDAP integration be sure to check and select one of the official support and/or consultation alternatives (https://www.mayan-edms.com/support/).
The LDAP entry of the FAQ was expanded with user feedback.
All the requirements to build the documentation are now generated automatically using Mayan’s internal dependency system.
The documentation now provides a sitemap to help in indexing and searching for information.
A missing detail of the API integration example to upload new documents has been added.
The update instructions to upgrade the supervisord configuration file were improve to work around some Linux shell differences. This makes the instructions work for more users.
The index create permission was removed as a possible permission to grant for existing indexes, as this is semantically incorrect.
An issue with reverse inheritance permission detection was fixed. It is now possible to grant document permissions via the document type under all situations and deployment types.
In some situations where improper horizontal scaling is used, the statistics result model could end up with duplicate slug field entries. This field is meant to be unique. Although this is a external issue, the situation is now prevented by making the field unique at the database level, adding a data migration to fix existing installations experiencing this issue, and by adding code that will detect and self-heal future occurrences of this.
The file patching code from the Dependency class to a generalized utility of the storages app. This code is now used in several places including the documentation global variable substitution.
Upgrading from a previous version¶
If installed via Python’s PIP¶
Remove deprecated requirements:
sudo -u mayan curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt -o /tmp/removals.txt && sudo -u mayan /opt/mayan-edms/bin/pip uninstall -y -r /tmp/removals.txt
Type in the console:
sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.2.11
the requirements will also be updated automatically.
If you installed Mayan EDMS by cloning the Git repository issue the commands:
$ git reset --hard HEAD $ git pull
otherwise download the compressed archived and uncompress it overriding the existing installation.
Remove deprecated requirements:
$ pip uninstall -y -r removals.txt
Next upgrade/add the new requirements:
$ pip install --upgrade -r requirements.txt
Perform these steps after updating the code from either step above.
Make a backup of your supervisord file:
sudo cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.conf.bck
Update the supervisord configuration file. Replace the environment variables values show here with your respective settings. This step will refresh the supervisord configuration file with the new queues and the latest recommended layout:
sudo sh -c "MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord > /etc/supervisor/conf.d/mayan-edms.conf"
Edit the supervisord configuration file and update any setting the template generator missed:
sudo vi /etc/supervisor/conf.d/mayan-edms.conf
Migrate existing database schema with:
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayanuserpass MAYAN_DATABASE_USER=mayan \ MAYAN_DATABASE_HOST=127.0.0.1 MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py performupgrade
Add new static media:
sudo -u mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py preparestatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes¶