Stappenplan: DSMR-reader v2.x upgraden naar v3.x
DSMR-reader v3.x
is niet backwards-compatible met v2.x
. Je zult hierdoor dus handmatig moeten upgraden om er zeker van te zijn dat alles blijft werken.
Notitie
Mocht je Docker gebruiken, dan kun je waarschijnlijk gewoon de v3.x
versie van de betreffende Docker-container installeren, zonder onderstaande stappen te hoeven uitvoeren.
1. Update naar de laatste v2.x
versie (v2.15
)
Voer het volgende uit:
sudo su - dsmr
./deploy.sh
2. Python versie check
DSMR-reader 3.x
vereist Python 3.6
of hoger.
Voer het volgende uit:
sudo su - dsmr
python3 --version
Het zou de Python-versie moeten tonen. Wanneer je al de versie Python 3.6
(of hoger) draait, kun je de volgende sectie negeren.
3. Python versie upgrade (deel 1/2)
Waarschuwing
Voer deze sectie alleen uit wanneer je DSMR-reader draait met Python 3.5
of lager!
Er zijn diverse handleidingen, afhankelijk van je OS. We gaan hier uit van Raspbian OS.
Voer het volgende uit:
# Credits to Jeroen Peters @ issue #624
sudo apt-get install python3-dev libffi-dev libssl-dev -y
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz
tar xJf Python-3.6.9.tar.xz
cd Python-3.6.9
./configure
make
sudo make install
sudo pip3 install --upgrade pip
Probeer om python3.6 --version
uit te voeren om te controleren of het gelukt is. Wanneer je foutmeldingen krijgt, ga dan niet verder met de upgrade.
De Python-upgrade gaat later verder, na het maken van een back-up.
4. Back-up
Het volgende wat je absoluut moet doen, is het maken van een verse database back-up en deze op een veilige plek opslaan.
Voer het volgende uit:
sudo su - dsmr
./manage.py dsmr_backup_create --full
Wanneer alles OK is, zie je een melding in de trend van:
Created full backup: /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-backup-Wednesday.sql.gz
Voer het volgende uit (bestandsnaam kan afwijken in jouw situatie!):
ls -lh /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-backup-Wednesday.sql.gz
Controleer of het bestand een (aannemelijke) grootte heeft:
-rw-rw-r-- 1 dsmr dsmr 7.5M Dec 18 20:59 /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-backup-Wednesday.sql.gz
Voer het volgende uit (bestandsnaam kan afwijken in jouw situatie!):
zcat /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-backup-Wednesday.sql.gz | tail
Controleer dat het eindigt met deze output:
--
-- PostgreSQL database dump complete
--
5. Python versie upgrade (deel 2/2)
Waarschuwing
Voer deze sectie alleen uit wanneer je DSMR-reader draait met Python 3.5
of lager!
Nu zijn we klaar om de omgeving te verwijderen waarin DSMR-reader werkt.
Voer het volgende uit:
sudo supervisorctl stop all
sudo su - dsmr
deactivate
cd ~
mv .virtualenvs/dsmrreader .virtualenvs/v2-dsmrreader
virtualenv /home/dsmr/.virtualenvs/dsmrreader --python python3.6
source ~/.virtualenvs/dsmrreader/bin/activate
logout
Notitie
Mocht je fouten krijgen, hiermee kun je weer terug naar de oude versie:
sudo su - dsmr
# One of these checkouts might fail, but it's okay:
git checkout -b v2 origin/v2
git checkout v2
# Just make sure you're at v2 now:
git branch
deactivate
cd ~
mv .virtualenvs/dsmrreader .virtualenvs/v3-dsmrreader
mv .virtualenvs/v2-dsmrreader .virtualenvs/dsmrreader
# Now redeploy
logout
sudo su - dsmr
./deploy.sh
# (Re)start all processes
logout
sudo supervisorctl restart all
Alles OK? Tijd om DSMR-reader te upgraden naar v3.x.
6. Wisselen naar DSMR-reader v3.x
DSMR-reader v3.x
leeft in een andere branch, om te voorkomen dat gebruikers onbedoeld upgraden naar v3.x
.
Voer het volgende uit:
sudo supervisorctl stop all
sudo su - dsmr
git fetch
git checkout -b v3 origin/v3
# Make sure you're at v3 now:
git branch
git pull
pip3 install -r dsmrreader/provisioning/requirements/base.txt
pip3 install -r dsmrreader/provisioning/requirements/postgresql.txt
# Now redeploy
./deploy.sh
# (Re)start all processes
logout
sudo supervisorctl restart all
Mooi! Je zou nu op v3.x
moeten zitten!