Інструкції для застосування міграцій MicroDAO Dashboard¶
Варіант 1: Використання скрипта (рекомендовано)¶
На NODE1 (сервер з базою даних):¶
# Перейти в директорію проєкту
cd /path/to/microdao-daarion
# Застосувати міграції
./scripts/apply_microdao_dashboard_migrations.sh postgres daarion localhost
Якщо база даних на іншому хості:
./scripts/apply_microdao_dashboard_migrations.sh postgres daarion your-db-host
Варіант 2: Ручне застосування¶
Крок 1: Застосувати міграцію 044¶
psql -U postgres -d daarion -f migrations/044_microdao_activity.sql
Крок 2: Застосувати міграцію 045¶
psql -U postgres -d daarion -f migrations/045_microdao_stats.sql
Крок 3: Застосувати seed-дані¶
psql -U postgres -d daarion -f docs/sql/seed_microdao_activity_daarion.sql
Варіант 3: Через Docker (якщо БД в контейнері)¶
# Знайти контейнер з PostgreSQL
docker ps | grep postgres
# Застосувати міграції
docker exec -i <postgres-container-name> psql -U postgres -d daarion < migrations/044_microdao_activity.sql
docker exec -i <postgres-container-name> psql -U postgres -d daarion < migrations/045_microdao_stats.sql
docker exec -i <postgres-container-name> psql -U postgres -d daarion < docs/sql/seed_microdao_activity_daarion.sql
Перевірка результатів¶
Перевірити таблицю активності:¶
SELECT COUNT(*) FROM microdao_activity WHERE microdao_slug = 'daarion';
-- Має повернути 10 записів
Перевірити структуру:¶
\d microdao_activity
Перевірити нові стовпці:¶
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'microdaos'
AND column_name IN ('citizens_count', 'rooms_count', 'agents_count', 'last_update_at');
Після застосування міграцій¶
-
Перезапустити city-service:
bash docker-compose restart city-service # або systemctl restart daarion-city-service -
Перезапустити web (якщо потрібно):
bash docker-compose restart web -
Перевірити API:
bash curl http://localhost:7001/city/microdao/daarion/dashboard
Troubleshooting¶
Помилка "relation already exists"¶
Якщо таблиця вже існує, міграції використовують CREATE TABLE IF NOT EXISTS, тому це нормально.
Помилка "column already exists"¶
Якщо стовпці вже існують, міграція використовує ADD COLUMN IF NOT EXISTS, тому це нормально.
Помилка "duplicate key value"¶
Якщо seed-дані вже застосовані, можна пропустити цей крок або видалити існуючі записи:
DELETE FROM microdao_activity WHERE microdao_slug = 'daarion';
-- Потім застосувати seed-дані знову