Blame

7808f6 Anonymous 2026-04-13 06:54:51 1
# Backup and restore from prod to other environments
2
3
Run these commands wherever production is running.
4
5
```bash
6
export WHERE="/"
7
export DB_NAME="visna_db_new"
8
export BACKUP="${DB_NAME}_backup.tar.gz"
9
export SSH_USER="marco"
10
export TARGET="192.168.40.60"
11
export RETRIEVERS="retrievers_20250730014908.pkl"
12
13
# Backup MongoDB
14
mongodump --db "$DB_NAME" --out .
15
tar -czf "$BACKUP" "$DB_NAME/"
16
scp "$BACKUP" ${SSH_USER}@${TARGET}:/
17
18
# Send retrievers file
19
scp "$RETRIEVERS" ${SSH_USER}@${TARGET}:/
20
```
21
22
Then run these wherever the container with the target environment is running.
23
24
```bash
25
26
export ENVIRONMENT="sandbox" # sandbox, staging or production
27
export MONGO_CONTAINER="visna-$ENVIRONMENT-mongodb-1"
28
export VISNA_CONTAINER="visna-$ENVIRONMENT-visna-1"
29
export DB_NAME="visna_db_new"
30
export BACKUP="${DB_NAME}_backup.tar.gz"
31
export RETRIEVERS="retrievers_20250730014908.pkl"
32
export USER="mtamassia@isn.edu.au"
33
34
# Restore backup
35
sudo docker cp "$BACKUP" $MONGO_CONTAINER:/
36
sudo docker exec -it -w / $MONGO_CONTAINER tar -xzf "$BACKUP"
37
sudo docker exec -it -w / $MONGO_CONTAINER mongorestore --db $DB_NAME --username admin --password password --authenticationDatabase admin "$DB_NAME/"
38
rm $BACKUP
39
rm -rf "${DB_NAME}/"
40
41
# Restore retrievers file
42
sudo docker cp "$RETRIEVERS" $VISNA_CONTAINER:/app
43
44
# Create user / make admin
45
sudo docker exec -it -w / $MONGO_CONTAINER mongosh --username admin --password password --authenticationDatabase admin --eval '
46
db.user.insertOne({
47
"userid": "$USER",
48
"user_name": "$USER",
49
"is_admin": true,
50
"tnc_accepted": true
51
});
52
' $DB_NAME
53
sudo docker exec -it -w / $MONGO_CONTAINER mongosh --username admin --password password --authenticationDatabase admin --eval 'db.user.updateOne({user_name: "$USER"}, {$set: {is_admin: true}})' $DB_NAME
54
```