Version 3.5.1
Released: September 11, 2020
Changes
Dependencies
The version check view has been fixed. A new test was added to avoid future regressions.
Error logging
Locking was added to the ErrorLog class to ensure only one instance of it is created per each app.
Self healing code was added to the ErrorLog .model()
property to remove
repeated entries previous to the locking improvement.
Sources
The error logging interface of the sources model was updated. A possible double logging of errors was also removed.
The preview generation of staging folder files was fixed. A test was added to detect future regressions.
Two improvements from the 4.0 development branch we backported.
The first, is the ability to the navigation that allows the sources app to properly implement highlighting of the active source being used to either upload a new document or a new document version.
The second, is the support for using staging folders as sources for uploading new document versions.
Other
Suppress staging folder file image tasks dependency errors on debug mode.
Removals
None
Upgrading process
Stop supervisord:
sudo systemctl stop supervisor
Edit the
config.yml
file and create the settingSTORAGE_SHARED_STORAGE
with the value ofCOMMON_SHARED_STORAGE
and the settingSTORAGE_SHARED_STORAGE_ARGUMENTS
with the value ofCOMMON_SHARED_STORAGE_ARGUMENTS
.
Upgrading from Mayan EDMS 3.2.x or earlier
Update the Redis configuration:
Configure Redis to discard data when it runs out of memory, not save its database, and only keep 2 database:
echo "maxmemory-policy allkeys-lru" | sudo tee -a /etc/redis/redis.conf echo "save \"\"" | sudo tee -a /etc/redis/redis.conf echo "databases 2" | sudo tee -a /etc/redis/redis.conf echo "requirepass mayanredispassword" | sudo tee -a /etc/redis/redis.conf sudo systemctl restart redis
Install the Python 3 development OS package:
sudo apt-get install python3-dev
Update the virtualenv to use Python 3:
sudo -u mayan virtualenv --clear /opt/mayan-edms -p /usr/bin/python3
Create a home directory for the Mayan EDMS system user:
mkdir /home/mayan
Grant ownership to the Mayan EDMS system user:
chown mayan:mayan /home/mayan
Reinstall the Python client for PostgreSQL and Redis:
sudo -u mayan /opt/mayan-edms/bin/pip install psycopg2==3.2.3 redis==5.0.7
Note
Platforms with the ARM CPU might also need additional requirements:
sudo -u mayan /opt/mayan-edms/bin/pip install psutil==5.8.0
Reinstall the Python client for RabbitMQ if you are using RabbitMQ as a broker:
sudo -u mayan /opt/mayan-edms/bin/pip install amqp==5.2.0
Upgrading from Mayan EDMS 3.3.x
Upgrade to the latest pip version:
sudo -u mayan /opt/mayan-edms/bin/pip install -U pip
Update the Redis configuration to enable password protection:
echo "requirepass mayanredispassword" | sudo tee -a /etc/redis/redis.conf sudo systemctl restart redis
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
Update the Mayan EDMS Python package:
sudo -u mayan /opt/mayan-edms/bin/pip install mayan-edms==3.5.1
the requirements will also be updated automatically.
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 -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayandbpass 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 | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
or:
sudo -u mayan MAYAN_DATABASES=\"{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'127.0.0.1'}}\" \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
Edit the supervisord configuration file and update any setting specific to your installation:
sudo vi /etc/supervisor/conf.d/mayan-edms.conf
Migrate existing database schema and static media files with:
sudo -u mayan MAYAN_DATABASE_ENGINE=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan \ MAYAN_DATABASE_PASSWORD=mayandbpass 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
or:
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayan','HOST':'127.0.0.1'}}" \ MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \ /opt/mayan-edms/bin/mayan-edms.py performupgrade
Start supervisord:
sudo systemctl start supervisor
Clear the browser cache to avoid loading old web assets.
The upgrade procedure is now complete.
Backward incompatible changes
The settings
COMMON_SHARED_STORAGE
andCOMMON_SHARED_STORAGE_ARGUMENTS
have been removed and substituted by the settingsSTORAGE_SHARED_STORAGE
andSTORAGE_SHARED_STORAGE_ARGUMENTS
.
Issues closed
GitLab issue #889 Check for update while upgrading from Version 3.4.17 to Version 3.5
GitLab issue #894 Errors with watch folders in version 3.5