-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate-db
executable file
·30 lines (28 loc) · 1.28 KB
/
update-db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/env bash
export COMPOSE_INTERACTIVE_NO_CLI=1
read -r key_path host < scripts.conf
echo "1) Adding key to ssh-agent from: $key_path"
out=$(ssh-add "$key_path" 2>&1)
echo " -> $out"
echo "2) Updating database..."
echo " a) Making the remote backup..."
remote_path=$(ssh "$host" /home/ubuntu/ytdpnl/backup | tail -1)
echo " -> Backup made remotely: $remote_path"
echo " b) Copying backup from remote to local..."
scp "$host":"$remote_path" . 1>&2 > /dev/null
dump_file=$(basename "$remote_path")
echo " -> Backup copied to local $dump_file."
echo " c) Ensuring development database is running..."
container_id=$(docker-compose ps -q development-db)
if [ "$container_id" == "" ]; then
echo " Development database container not found, starting it..."
docker-compose up -d development-db
container_id=$(docker-compose ps -q development-db)
fi
echo " -> Container id is: $container_id"
echo " d) Copying backup from host to container..."
docker cp "$dump_file" "$container_id":/ytdpnl.tar 1>&2 > /dev/null
echo " -> Backup copied to container."
echo " e) Restoring backup in development database..."
docker-compose exec development-db pg_restore -c -U admin -d ytdpnl -F t ytdpnl.tar -v | xargs -I {} echo " -> {}"
echo "Development database updated with prod values from right now :)"