@@ -4,20 +4,13 @@ CONTAINER=gptwrapper_db
4
4
SERVICE_NAME=db
5
5
DB_NAME=postgres
6
6
7
- GPTWRAPPER_FILE_NAME=gptwrapper.sql.gz
8
-
9
- SERVER=toska.cs.helsinki.fi
10
- SERVER_PATH=/home/toska_user/most_recent_backup_store/
11
-
12
- SERVER_FILE=${SERVER_PATH}${GPTWRAPPER_FILE_NAME}
7
+ FOLDER_NAME=" gptwrapper"
13
8
14
9
PROJECT_ROOT=$( dirname $( dirname $( realpath " $0 " ) ) )
15
10
BACKUPS=$PROJECT_ROOT /backups/
16
- DOCKER_COMPOSE=$PROJECT_ROOT /compose.yaml
17
-
18
- USER_DATA_FILE_PATH=$PROJECT_ROOT /scripts/my_username
11
+ DOCKER_COMPOSE=$PROJECT_ROOT /docker-compose.yml
19
12
20
- username= " "
13
+ S3_CONF= ~ /.s3cfg
21
14
22
15
retry () {
23
16
for i in {1..60}
@@ -26,39 +19,51 @@ retry () {
26
19
done
27
20
}
28
21
29
- get_username () {
30
- # Check if username has already been set
31
- [ -z " $username " ]|| return 0
32
-
33
- # Check if username is saved to data file and ask it if not
34
- if [ ! -f " $USER_DATA_FILE_PATH " ]; then
35
- echo " "
36
- echo " !! No previous username data found. Will ask it now !!"
37
- echo " Enter your Uni Helsinki username:"
38
- read username
39
- echo $username > $USER_DATA_FILE_PATH
40
- echo " Succesfully saved username"
41
- echo " "
42
- fi
43
-
44
- # Set username
45
- username=$( cat $USER_DATA_FILE_PATH | head -n 1)
46
- }
22
+ if [ ! -f " $S3_CONF " ]; then
23
+ echo " "
24
+ echo " !! No config file for s3 bucket !!"
25
+ echo " Create file for path ~/.s3cfg and copy the credetials from version.helsinki.fi"
26
+ echo " "
27
+ return 0
28
+ fi
47
29
48
30
echo " Creating backups folder"
49
31
mkdir -p ${BACKUPS}
50
32
51
- echo " Fetching a new dump"
52
- get_username
53
- scp -r -o ProxyCommand=" ssh -l $username -W %h:%p melkki.cs.helsinki.fi" $username @$SERVER :$SERVER_FILE $BACKUPS
33
+ echo " Listing available backups in S3 bucket..."
34
+ backup_files=$( s3cmd -c " $S3_CONF " ls " s3://psyduck/${FOLDER_NAME} /" | awk ' {print $4}' | grep ' \.sql\.gz$' )
35
+
36
+ if [ -z " $backup_files " ]; then
37
+ echo " No backup files found in S3 bucket!"
38
+ exit 1
39
+ fi
40
+
41
+ echo " Available backups:"
42
+ select chosen_backup in $backup_files ; do
43
+ if [ -n " $chosen_backup " ]; then
44
+ echo " You selected: $chosen_backup "
45
+ FILE_NAME=$( basename " $chosen_backup " )
46
+ break
47
+ else
48
+ echo " Invalid selection. Please select a valid backup number."
49
+ fi
50
+ done
51
+
52
+ echo " Fetching the selected dump: $FILE_NAME "
53
+ s3cmd -c " $S3_CONF " get " $chosen_backup " " $BACKUPS "
54
+
55
+ if [ ! -f " ${BACKUPS}${FILE_NAME} " ]; then
56
+ echo " Download failed or file not found: ${BACKUPS}${FILE_NAME} "
57
+ exit 1
58
+ fi
54
59
55
60
echo " Removing database and related volume"
56
- docker compose -f $DOCKER_COMPOSE down -v
61
+ docker- compose -f $DOCKER_COMPOSE down -v
57
62
58
63
echo " Starting postgres in the background"
59
- docker compose -f $DOCKER_COMPOSE up -d $SERVICE_NAME $JAMI_DB
64
+ docker- compose -f $DOCKER_COMPOSE up -d $SERVICE_NAME
60
65
61
- retry docker compose -f $DOCKER_COMPOSE exec $SERVICE_NAME pg_isready --dbname=$DB_NAME
66
+ retry docker- compose -f $DOCKER_COMPOSE exec $SERVICE_NAME pg_isready --dbname=$DB_NAME
62
67
63
- echo " Populating Gptwrapper "
64
- docker exec -i $CONTAINER /bin/bash -c " gunzip | psql -U postgres" < ${BACKUPS}${GPTWRAPPER_FILE_NAME }
68
+ echo " Populating Lomake "
69
+ docker exec -i $CONTAINER /bin/bash -c " gunzip | psql -U postgres" < ${BACKUPS}${FILE_NAME }
0 commit comments