Наръчник: Бекъп и възстановяване на PostgreSQL
Azure Automatic Backups
Azure Database for PostgreSQL автоматично създава бекъпи:
- Retention: 7 дни (по подразбиране за B1ms)
- Тип: Full backup + WAL архивиране
- Честота: Ежедневно
Възстановяване от Azure backup
az postgres flexible-server restore \
--resource-group dictaro-rg \
--name dictaro-db-restored \
--source-server dictaro-db-server \
--restore-point-in-time "2026-03-13T12:00:00Z"
Ръчен бекъп с pg_dump
Създаване на бекъп
# От машина с достъп до PostgreSQL
pg_dump "postgresql://dictaro:<PASSWORD>@dictaro-db-server.postgres.database.azure.com:5432/dictaro?sslmode=require" \
--format=custom \
--file=dictaro_backup_$(date +%Y%m%d_%H%M%S).dump
# Само schema (без данни)
pg_dump "postgresql://..." --schema-only --file=schema.sql
# Само данни
pg_dump "postgresql://..." --data-only --file=data.sql
Възстановяване от бекъп
# В съществуваща база
pg_restore --dbname="postgresql://..." --clean --if-exists dictaro_backup.dump
# В нова база
createdb -h dictaro-db-server.postgres.database.azure.com -U dictaro dictaro_new
pg_restore --dbname="postgresql://dictaro:...@.../dictaro_new?sslmode=require" dictaro_backup.dump
Миграции
Database миграциите са в licensing-go/internal/database/migrations/:
000001_initial.up.sql — users, license_keys, usage_records, stats_aggregate
000002_device_accounts.up.sql — device_accounts таблица
000003_email_auth.up.sql — password_hash, email_verified, email_tokens
Миграциите се прилагат автоматично при стартиране на Licensing API.
Проверка на данни
-- Брой потребители
SELECT count(*) FROM users;
-- Последни регистрации
SELECT email, provider, plan, created_at FROM users ORDER BY created_at DESC LIMIT 10;
-- Usage статистика
SELECT * FROM stats_aggregate;