Bonjour,
Restoring weblate on another machine where a virgin weblate is already installed can be done with:
sudo docker-compose exec --user postgres database pg_dump weblate > weblate.dump
scp weblate.dump othermachine:/tmp
ssh othermachine
sudo docker-compose stop weblate
sudo docker cp /tmp/weblate.dump weblate_database_1:/srv
sudo docker-compose exec --user postgres database psql -c ‘DROP DATABASE weblate’
sudo docker-compose exec --user postgres database psql -c ‘CREATEE DATABASE weblate’
sudo docker-compose exec --user postgres database psql -f /srv/weblate.dump
login as admin, click on admin, Components, go to each component and click Save. This will trigger a git clone to restore the repositories.
Works for me:
ssh weblate.securedrop.club
cd /home/ubuntu/weblate-docker
sudo docker-compose exec --user postgres database pg_dump weblate | gzip > weblate.dump.gz
exit
scp weblate.securedrop.club:/home/ubuntu/weblate-docker/weblate.dump.gz .
scp -i id_rsa weblate.dump.gz debian@$WEBLATE_HOST:~
molecule login -s weblate --host weblate_host
cd /srv/weblate/
sudo docker-compose stop weblate
sudo docker-compose exec --user postgres database psql -c 'DROP DATABASE weblate'
sudo docker-compose exec --user postgres database psql -c 'CREATE DATABASE weblate'
Currently I don’t find a shared directory between host and container.
dachary
October 17, 2017, 10:40am
#3
This is what you need to copy the weblate.dump.gz file inside the container.
Oops, I missed it. ok. So:
zcat /home/debian/weblate.dump.gz > weblate.dump
sudo docker cp weblate.dump weblate_database_1:/srv
sudo docker-compose exec --user postgres database psql -f /srv/weblate.dump
rm /home/debian/weblate.dump.gz /srv/weblate/weblate.dump
So, after struggling a lot, we found the good way to do it. Here is my final Q&D script:
# See molecule/weblate/.molecule/instance_config.yml for getting servers details
WEBLATE_HOST="145.239.155.42"
echo -e \\n dump current weblate, get data\\n
ssh weblate.securedrop.club "cd /home/ubuntu/weblate-docker && sudo docker-compose exec --user postgres database pg_dump --clean --create weblate | gzip > weblate.dump.gz"
scp weblate.securedrop.club:/home/ubuntu/weblate-docker/weblate.dump.gz .
echo -e \\n put it on the test/new weblate\\n
scp -i id_rsa weblate.dump.gz debian@$WEBLATE_HOST:/home/debian/weblate.dump.gz
echo -e \\n stop docker\\n
ssh -i id_rsa debian@$WEBLATE_HOST "cd /srv/weblate/ && sudo docker-compose stop weblate"
echo -e \\n import dump\\n
ssh -i id_rsa debian@$WEBLATE_HOST "zcat /home/debian/weblate.dump.gz > /srv/weblate/weblate.dump"
ssh -i id_rsa debian@$WEBLATE_HOST "cd /srv/weblate/ && sudo docker cp weblate.dump weblate_database_1:/srv"
ssh -i id_rsa debian@$WEBLATE_HOST "cd /srv/weblate/ && sudo docker-compose exec --user postgres database psql -f /srv/weblate.dump"
echo -e \\n start docker\\n
ssh -i id_rsa debian@$WEBLATE_HOST "cd /srv/weblate/ && sudo docker-compose start weblate"
echo -e \\n clean dumps\\n
rm -v weblate.dump.gz
ssh -i id_rsa debian@$WEBLATE_HOST "rm -v /home/debian/weblate.dump.gz /srv/weblate/weblate.dump"
ssh -i id_rsa debian@$WEBLATE_HOST "cd /srv/weblate/ && sudo docker-compose exec database rm -v /srv/weblate.dump"
ssh weblate.securedrop.club rm -v /home/ubuntu/weblate-docker/weblate.dump.gz
Then, goto http://$WEBLATE_HOST/admin/trans/subproject/ and revalidate each project for triggering the git hooks.
1 Like
Be careful to not launching it too early. Wait that http://$WEBLATE_HOST/ answer properly before launching the migration script. If not, I guess you may break django migrations launched at the first starting of the container.
Also, I thought: the script rely on DNS. We should use ip for hostnames. Then weblate.securedrop.club
=>$OLD_WEBLATE_HOST
dachary
October 26, 2017, 9:06am
#8
For the record, here is what I ended up doing for the migration:
cat /etc/hosts
54.36.100.196 weblate.securedrop.club
145.239.12.117 old-weblate.securedrop.club
ssh ubuntu@old-weblate.securedrop.club
cd /home/ubuntu/weblate-docker && sudo docker-compose exec --user postgres database pg_dump --clean --create weblate | gzip > weblate.dump.gz
scp ubuntu@old-weblate.securedrop.club:/home/ubuntu/weblate-docker/weblate.dump.gz .
scp weblate.dump.gz debian@weblate.securedrop.club
ssh debian@weblate.securedrop.club
cd /srv/weblate/
sudo docker-compose -f docker-compose-securedrop-club.yml stop weblate
zcat /home/debian/weblate.dump.gz > /srv/weblate/weblate.dump
sudo docker cp weblate.dump weblate_database_1:/srv
sudo docker-compose -f docker-compose-securedrop-club.yml exec --user postgres database psql -f /srv/weblate.dump
sudo docker-compose -f docker-compose-securedrop-club.yml start weblate