Copying instance data and files¶
Migrating from one server to another¶
Warning
THESE ACTIONS WILL DELETE ALL DATA ON THE TARGET SERVER
Exporting on source server (as root):¶
Stop Canopy services:
systemctl stop canopy canopy-celery
Note for older versions (3.0) of Canopy one would use
supervisorctl
instead ofsystemctl
.Create a database dump:
canopy-manage dumpdata --all -o db.json
Archive data files:
tar -zcvf canopy_files.tgz /var/opt/checksec/canopy
Start services again if required:
systemctl start canopy canopy-celery
Copy
db.json
andcanopy_files.tgz
to target server.
Importing on target server (as root):¶
Stop Canopy services:
systemctl stop canopy canopy-celery
If database structure is outdated or non-existent then configure a production database:
canopy-manage setupdb --prod --drop-tables
Delete data in database:
canopy-manage flush
Remove remaining remnants that are auto-generated:
Warning
This may delete files in
/var/opt/checksec/canopy/
if their respective objects are still in the database.echo -e 'from django.apps import apps\nfor model in apps.get_models(): model.objects.all().delete()' | SKIP_PRBAC_CHECKS=1 canopy-manage shell
Load database dump (
db.json
):SKIP_PRBAC_CHECKS=1 canopy-manage loaddata db.json
Extract Canopy data files:
tar -xvf canopy_files.tgz -C /
Set ownership of files:
chown -R canopy: /var/opt/checksec/canopy
Start Canopy services:
systemctl start canopy canopy-celery