From 67b3230c7ac45115fc91551b7da94ed3067ea809 Mon Sep 17 00:00:00 2001 From: n1k15 Date: Mon, 10 Feb 2025 18:34:00 +0300 Subject: [PATCH 1/2] devops-2410 update psql to v17 and add scripts migrate db from 13 to 15, 15 to 17 --- README.md | 30 ++++++++++++++++- scripts/scripts/migrate-db-from-13-to-15.sh | 36 +++++++++++++++++++++ scripts/scripts/migrate-db-from-15-to-17.sh | 36 +++++++++++++++++++++ workspace.yaml | 2 +- 4 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 scripts/scripts/migrate-db-from-13-to-15.sh create mode 100644 scripts/scripts/migrate-db-from-15-to-17.sh diff --git a/README.md b/README.md index 396cd00..bae3374 100644 --- a/README.md +++ b/README.md @@ -218,4 +218,32 @@ templates: proxy: [default] variables: DB_NAME: cms_cms -``` \ No newline at end of file +``` + +## Upgrade postgres from 13 to 15 version + +Just run script `migrate-db-from-13-to-15.sh` from workspace folder +``` +./scripts/migrate-db-from-13-to-15.sh +``` +it can prompt a sudo password, because it works with postgres data dir. + +Script makes two backups: +- `backup.sql` in current folder +- `data-13-backup` in database service folder + +Keep this files until you prove that database works correct. + +## Upgrade postgres from 15 to 17 version + +Just run script `migrate-db-from-15-to-17.sh` from workspace folder +``` +./scripts/migrate-db-from-15-to-17.sh +``` +it can prompt a sudo password, because it works with postgres data dir. + +Script makes two backups: +- `backup.sql` in current folder +- `data-15-backup` in database service folder + +Keep this files until you prove that database works correct. diff --git a/scripts/scripts/migrate-db-from-13-to-15.sh b/scripts/scripts/migrate-db-from-13-to-15.sh new file mode 100644 index 0000000..23d06e2 --- /dev/null +++ b/scripts/scripts/migrate-db-from-13-to-15.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -xe + +elc stop database + +sudo cp -r $PWD/services/database/data $PWD/services/database/data-13-backup + +docker rm -f pg_13_for_migrate + +docker run -d --name pg_13_for_migrate \ + -v $PWD/services/database/data:/var/lib/postgresql/data \ + dockerhub.greensight.ru/services/postgis:13-3.1 + +sleep 5 + +while ! docker exec -it pg_13_for_migrate pg_isready; do + sleep 1 +done + +echo Done + +docker exec -it pg_13_for_migrate pg_dumpall -U postgres --clean > backup.sql + +docker rm -f pg_13_for_migrate + +sudo rm -rf $PWD/services/database/data +sudo mkdir $PWD/services/database/data +sudo chmod 777 $PWD/services/database/data + +elc start database +sleep 5 + +cat backup.sql | elc exec --no-tty -c database psql -U postgres + +echo "ALTER USER postgres WITH PASSWORD 'example';" | elc exec --no-tty -c database psql -U postgres diff --git a/scripts/scripts/migrate-db-from-15-to-17.sh b/scripts/scripts/migrate-db-from-15-to-17.sh new file mode 100644 index 0000000..e6d2083 --- /dev/null +++ b/scripts/scripts/migrate-db-from-15-to-17.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -xe + +elc stop database + +sudo cp -r $PWD/services/database/data $PWD/services/database/data-15-backup + +docker rm -f pg_15_for_migrate + +docker run -d --name pg_15_for_migrate \ + -v $PWD/services/database/data:/var/lib/postgresql/data \ + dockerhub.greensight.ru/services/postgis:15-3.4 + +sleep 5 + +while ! docker exec -it pg_15_for_migrate pg_isready; do + sleep 1 +done + +echo Done + +docker exec -it pg_15_for_migrate pg_dumpall -U postgres --clean > backup.sql + +docker rm -f pg_15_for_migrate + +sudo rm -rf $PWD/services/database/data +sudo mkdir $PWD/services/database/data +sudo chmod 777 $PWD/services/database/data + +elc start database +sleep 5 + +cat backup.sql | elc exec --no-tty -c database psql -U postgres + +echo "ALTER USER postgres WITH PASSWORD 'example';" | elc exec --no-tty -c database psql -U postgres diff --git a/workspace.yaml b/workspace.yaml index 15863a3..ea154b3 100644 --- a/workspace.yaml +++ b/workspace.yaml @@ -59,7 +59,7 @@ services: database: path: ${WORKSPACE_PATH}/services/database variables: - APP_IMAGE: dockerhub.greensight.ru/services/postgis:13-3.1 #original docker image - postgis/postgis:13-3.1 + APP_IMAGE: dockerhub.greensight.ru/services/postgis:17-3.4 #original docker image - postgis/postgis:17-3.4 tags: - system From 1ce0456d7646d28f0a76d1babf20e01562991c70 Mon Sep 17 00:00:00 2001 From: n1k15 Date: Fri, 14 Feb 2025 16:15:37 +0300 Subject: [PATCH 2/2] devops-2410 update psql to v17 and add scripts migrate db from 13 to 17 --- README.md | 18 ++-------- ...3-to-15.sh => migrate-db-from-13-to-17.sh} | 0 scripts/scripts/migrate-db-from-15-to-17.sh | 36 ------------------- 3 files changed, 2 insertions(+), 52 deletions(-) rename scripts/scripts/{migrate-db-from-13-to-15.sh => migrate-db-from-13-to-17.sh} (100%) delete mode 100644 scripts/scripts/migrate-db-from-15-to-17.sh diff --git a/README.md b/README.md index bae3374..31ddd50 100644 --- a/README.md +++ b/README.md @@ -220,9 +220,9 @@ templates: DB_NAME: cms_cms ``` -## Upgrade postgres from 13 to 15 version +## Upgrade postgres from 13 to 17 version -Just run script `migrate-db-from-13-to-15.sh` from workspace folder +Just run script `migrate-db-from-13-to-17.sh` from workspace folder ``` ./scripts/migrate-db-from-13-to-15.sh ``` @@ -233,17 +233,3 @@ Script makes two backups: - `data-13-backup` in database service folder Keep this files until you prove that database works correct. - -## Upgrade postgres from 15 to 17 version - -Just run script `migrate-db-from-15-to-17.sh` from workspace folder -``` -./scripts/migrate-db-from-15-to-17.sh -``` -it can prompt a sudo password, because it works with postgres data dir. - -Script makes two backups: -- `backup.sql` in current folder -- `data-15-backup` in database service folder - -Keep this files until you prove that database works correct. diff --git a/scripts/scripts/migrate-db-from-13-to-15.sh b/scripts/scripts/migrate-db-from-13-to-17.sh similarity index 100% rename from scripts/scripts/migrate-db-from-13-to-15.sh rename to scripts/scripts/migrate-db-from-13-to-17.sh diff --git a/scripts/scripts/migrate-db-from-15-to-17.sh b/scripts/scripts/migrate-db-from-15-to-17.sh deleted file mode 100644 index e6d2083..0000000 --- a/scripts/scripts/migrate-db-from-15-to-17.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -xe - -elc stop database - -sudo cp -r $PWD/services/database/data $PWD/services/database/data-15-backup - -docker rm -f pg_15_for_migrate - -docker run -d --name pg_15_for_migrate \ - -v $PWD/services/database/data:/var/lib/postgresql/data \ - dockerhub.greensight.ru/services/postgis:15-3.4 - -sleep 5 - -while ! docker exec -it pg_15_for_migrate pg_isready; do - sleep 1 -done - -echo Done - -docker exec -it pg_15_for_migrate pg_dumpall -U postgres --clean > backup.sql - -docker rm -f pg_15_for_migrate - -sudo rm -rf $PWD/services/database/data -sudo mkdir $PWD/services/database/data -sudo chmod 777 $PWD/services/database/data - -elc start database -sleep 5 - -cat backup.sql | elc exec --no-tty -c database psql -U postgres - -echo "ALTER USER postgres WITH PASSWORD 'example';" | elc exec --no-tty -c database psql -U postgres