База данных
Postgresql используется как основная база банных, на момент написания документации версия 13.20
.
Кластер работает без контейнеризации, pgsql установлен в системе.
Приложение npchat подключается к БД без пароля, так работает только на localhost
. Для возможности подключаться извне сервера (из интернета), был создан firwalld-сервис npcdbservice
, открывающий порт 5444
и установлены соответствующие настройки в /var/lib/pgsql/data/postgresql.conf
.
Для удобства работы с production базой данных используется веб-панел, подробнее в infra.md.
Миграции
Посмотреть актуальную версию схемы БД: SELECT * FROM "schema_migrations"
.
Для применения миграций используется cli-приложение migrate, а также для создания пустых up/down файлов в директории npchat/infra/pgsql/init.
Также migrate
умеет генертровать файлов с нужным названием под миграции, а порядок использования такой - в проекте npchat перейти в директорию npchat/infra/pgsql/
и выполнить команду:
migrate create -ext sql -seq migration_name
После чего будут созданы два файла: 000042_migration_name.down.sql
и 000042_migration_name.up.sql
.
Перед применением миграций ознакомиться с правилами выполнения и документацией migrate. Для применения миграций, перейти в директорию npchat/infra/pgsql/
и выполнить команду:
migrate -path ./ --database datasourcename up