Перейти к основному содержимому

Миграция

В качестве инструмента для миграции базы данных использует goose. Когда в качестве хранилища используется Postgres, goose запускается перед началом работы hbf-server'a. Более подробную информацию о goose можно найти здесь.

Перед запуском goose необходимо настроить скрипт миграции командой:

cat <<EOF > migration.sh
#!/bin/bash
SG_DB_USER="user"
SG_DB_PASSWORD="password"
SG_DB_URL="localhost:5432"
SG_DB_NAME="swarm"

SG_STORAGE_POSTGRES_URL="postgres://${SG_DB_USER}:${SG_DB_PASSWORD}@${SG_DB_URL}/${SG_DB_NAME}?sslmode=disable"

export SG_STORAGE_POSTGRES_URL=$SG_STORAGE_POSTGRES_URL

exec ./bin/goose postgres $SG_STORAGE_POSTGRES_URL up
EOF

Сборка

Перед сборкой необходимо склонировать репозиторий

export VERSION=1.9.1
git clone https://github.com/H-BF/sgroups
cd sgroups
git fetch --tags --all
git checkout tags/v${VERSION}
make .install-goose

После сборки, скомпилированный бинарный файл будет доступен в папке ./bin/goose в корне репозитория (не путать с /bin, расположенным в корне файловой системы).

По умолчанию файлы миграции расположены в папке ./internal/registry/sgroups/pg/migrations, но пользователь может указать и другой путь, определив переменную окружения PG_MIGRATIONS.

Используемые переменные
НазваниеОписаниеЗначение по умолчанию
SG_STORAGE_POSTGRES_URLПеременная необходимая для подключения к БД
PG_MIGRATIONSПеременная, содержащая путь к файлам миграций"./internal/registry/sgroups/pg/migrations"
SG_DB_USERИмя пользователя БД
SG_DB_PASSWORDПароль пользователя БД
SG_DB_URLАдрес базы данных (HOST:PORT)
SG_DB_NAMEИмя БДswarm

Запуск

Для выполнения миграции базы данных вручную пользователь может запустить следующую команду (рекомендуемый способ):

sh migration.sh