DB optimization: pool, golang-migrate, consolidate to single Postgres

- Fix DB_NAME=db_yal -> mydb in api_yal .env
- Add connection pool (MaxOpenConns 25, MaxIdleConns 10, ConnMaxLifetime 30m)
- Replace GORM AutoMigrate with golang-migrate in api_yal and api_bb
- Create embedded SQL migrations for both APIs
- Add DB_SCHEMA support to api_bb config
- Consolidate to single Postgres: db_bb -> schema 'bb' on db container
- Remove db_bb service, bb-network, db_bb volume from compose
- Remove api_tp targets from Makefile
- Clean up old migrate.go
This commit is contained in:
valitovgaziz
2026-06-12 10:47:41 +05:00
parent ec83b97c25
commit b0350abfbe
18 changed files with 610 additions and 206 deletions
+5 -30
View File
@@ -49,7 +49,6 @@ services:
- web-network
- internal
- app-network
- bb-network
depends_on:
easysite:
condition: service_healthy
@@ -140,7 +139,7 @@ services:
timeout: 10s
retries: 5
# REST API on Golang (Gorm, Chi) логика обработки информации для сайта БегущийБашкир Работает с БД db_bb on PostgresQL
# REST API on Golang (Gorm, Chi) логика обработки информации для сайта БегущийБашкир
api_bb:
build:
context: ./BB/api_bb
@@ -150,22 +149,22 @@ services:
container_name: api_bb
restart: unless-stopped
depends_on:
db_bb:
db:
condition: service_healthy
env_file:
- ./BB/api_bb/.env
volumes:
- api_bb_uploads:/app/uploads
environment:
# Database connection settings
DB_HOST: db_bb
DB_HOST: db
DB_PORT: 5432
DB_USER: postgres
DB_PASSWORD: postgres
DB_NAME: bb_db
DB_SCHEMA: bb
APP_PORT: 8080
networks:
- bb-network
- app-network
healthcheck:
test:
[
@@ -180,27 +179,6 @@ services:
timeout: 10s
retries: 3
# PostgresQL DB база данных для работы сайта Бегущий Башкир
db_bb:
image: postgres:15-alpine
restart: unless-stopped
ports:
- "5433:5432"
container_name: db_bb
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: bb_db
volumes:
- db_bb_data:/var/lib/postgresql/data
networks:
- bb-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 30s
timeout: 10s
retries: 5
# SPA app прилжение выполнено на nuxt.js интерфейс для туристического бизнеса. Хранение информации в api_yal REST API app
easysite:
build:
@@ -280,7 +258,6 @@ volumes:
certbot_data: # volume для данных Certbot
certbot_www: # volume для данных Certbot
db_tp_data: # Volume для данных БД yalarba.ru
db_bb_data: # Volume для данных БД Бегущий башкир
api_bb_uploads: # Volume для загружаемых файлов бегущий башкир
analytics_logs: # Volume для логов аналитики
analytics_data: # Volume для данных аналитики
@@ -292,8 +269,6 @@ networks:
driver: bridge
app-network:
driver: bridge
bb-network:
driver: bridge
# Эта опция автоматически удаляет orphans (Не используемые контейнеры)
x-remove-orphans: true