Сommon database on host: instance.evarun.ru
- RC stage: rc_sr2020
- Production stage: sr2020
1.1. Качаем flyway c https://flywaydb.org/
flywayInstallDir/conf/flyway.conf
прописываем JDBC соединение с БД flyway.url=jdbc:postgresql://localhost:5432/sr2020 flyway.user=backend flyway.password=пароль
подробно - тут https://flywaydb.org/getstarted/firststeps/commandline
2.1. Устанавливаем Docker (https://docs.docker.com/install/)
2.2. Устанавливаем Docker Compose (https://docs.docker.com/compose/install/)
Для Linux можно установить выполнив команду из корня репозитория
make install-docker-compose
cp .env.example .env
docker-compose up -d
После этого немного ждем, пока Postgres поднимется внутри контейнера.
make migrate
В дирректории sql/
создаем файл с именем Vn.n.n__name.sql
по аналогии с уже созданными. Версия нового файла должна быть больше всех уже ранее созданных.
Не забывая сделать для нее rebase
с актуальным master
:
git fetch origin master:master
git rebase master
Далее пушим его в ветку rc
. Должна появиться сборка rc
. Смотрим за сборкой: https://travis-ci.org/sr-2020/sr-2020-db/builds
Если сборка прошла успешно, значит ваша миграция накатилась на базу данных rc_sr2020
.
Подключиться к ней можно так:
psql -h instance.evarun.ru -U backend rc_sr2020
Если все хорошо идем дальше.
git checkout master
git merge rc
Должна появиться сборка master
. Смотрим за сборкой: https://travis-ci.org/sr-2020/sr-2020-db/builds
Проверяем миграцию на основной базе sr2020
psql -h instance.evarun.ru -U backend sr2020
helm secrets install pg13 -f helm/pg13/values.yaml -f helm/pg13/secrets.yaml bitnami/postgresql
helm secrets upgrade pg13 -f helm/pg13/values.yaml -f helm/pg13/secrets.yaml bitnami/postgresql
kubectl port-forward pg13-postgresql-primary-0 5430:5432
helm install pg-exporter -f helm/pg-exporter/values.yaml prometheus-community/prometheus-postgres-exporter
helm upgrade pg-exporter -f helm/pg-exporter/values.yaml prometheus-community/prometheus-postgres-exporter
helm install prometheus -f helm/prometheus/values.yaml prometheus-community/prometheus
helm upgrade prometheus -f helm/prometheus/values.yaml prometheus-community/prometheus