Upgrade to Docker
These instructions assume:
You are upgrading from 0.10.0.
You are using a PostgreSQL database in the existing installation.
That existing Linux installs followed the instructions in the previous releases, with the openrem-function format that changed in the 0.9.1 release (Systemd service names in Ubuntu installs).
If not you will need to adapt the instructions as necessary.
Upgrades from 0.9.1 or earlier should review Upgrade to OpenREM 0.10.0 from 0.7.3 or later. – needs changing
Upgrade process from a PostgresQL database
Stop the existing services
Linux:
$ sudo systemctl stop orthanc $ sudo systemctl stop nginx $ sudo systemctl stop openrem-gunicorn $ sudo systemctl stop openrem-flower $ sudo systemctl stop openrem-celery $ sudo systemctl stop rabbitmq-server $ sudo systemctl disable orthanc $ sudo systemctl disable nginx $ sudo systemctl disable openrem-gunicorn $ sudo systemctl disable openrem-flower $ sudo systemctl disable openrem-celery $ sudo systemctl disable rabbitmq-server
Windows: stop the following services
Orthanc or Conquest
IIS OpenREM site or other webserver
Flower
Celery
RabbitMQ
Establish existing database details
Review the current local_settings.py
for the database settings and location of the MEDIA_ROOT
folder. The file
is in:
Ubuntu linux:
/usr/local/lib/python2.7/dist-packages/openrem/openremproject/local_settings.py
Other linux:
/usr/lib/python2.7/site-packages/openrem/openremproject/local_settings.py
Linux virtualenv:
vitualenvfolder/lib/python2.7/site-packages/openrem/openremproject/local_settings.py
Windows:
C:\Python27\Lib\site-packages\openrem\openremproject\local_settings.py
Windows virtualenv:
virtualenvfolder\Lib\site-packages\openrem\openremproject\local_settings.py
Export the database
Open a command line window
Windows: go to Postgres bin folder, for example:
$ cd "C:\Program Files\PostgreSQL\9.6\bin"
Dump the database:
Use the username (
-U openremuser
) and database name (-d openremdb
) fromlocal_settings.py
Use the password from
local_settings.py
when promptedFor linux, the command is
pg_dump
(no.exe
)Set the path to somewhere suitable to dump the exported database file
$ pg_dump.exe -U openremuser -d openremdb -F c -f path/to/export/openremdump.bak
Set up the new installation
Install Docker
Download and extract https://bitbucket.org/openrem/docker/get/develop.zip and open a shell (command window) in the new folder
Customise variables in
.env.prod
, theorthanc_1
section indocker-compose.yml
and inorthanc_1.json
as necessary. A full description of the options are found in:
Start the containers with:
$ docker-compose up -d
Copy the database backup to the postgres docker container and import it. If you have changed the database variables, ensure that:
the database user (
-U openremuser
) matchesPOSTGRES_USER
in.env.prod
the database name (
-d openrem_prod
) matchesPOSTGRES_DB
in.env.prod
They don’t have to match the old database settings. The filename in both commands (openremdump.bak
) should match
your backup filename.
$ docker cp /path/to/openremdump.bak openrem-db:/db_backup/
$ docker-compose exec db pg_restore --no-privileges --no-owner -U openremuser -d openrem_prod /db_backup/openremdump.bak
It is normal to get an error about the public schema, for example:
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 3; 2615 2200 SCHEMA public postgres
pg_restore: error: could not execute query: ERROR: schema "public" already exists
Command was: CREATE SCHEMA public;
pg_restore: warning: errors ignored on restore: 1
Rename the 0.10 upgrade migration file, migrate the database (the steps and fakes are required as it is not a new database), and create the static files:
$ docker-compose exec openrem mv remapp/migrations/0001_initial.py.1-0-upgrade remapp/migrations/0001_initial.py
$ docker-compose exec openrem python manage.py migrate --fake-initial
$ docker-compose exec openrem python manage.py migrate remapp --fake
$ docker-compose exec openrem python manage.py makemigrations remapp
$ docker-compose exec openrem python manage.py migrate
$ docker-compose exec openrem python manage.py loaddata openskin_safelist.json
$ docker-compose exec openrem python manage.py collectstatic --noinput --clear
Generate translation binary files
$ docker-compose exec openrem python manage.py compilemessages
The new OpenREM installation should now be ready to be used.