Browse Source

chore: общий Postgres по умолчанию; compose standalone + подсказки .env

Made-with: Cursor
dev
Константин Лебединский 2 weeks ago
parent
commit
8ffd104f64
  1. 6
      README.md
  2. 15
      backend/.env.example
  3. 11
      docker-compose.yml
  4. 2
      docs/шаги/01-project-setup.md

6
README.md

@ -116,9 +116,11 @@
2. Один раз создать базу:
`psql "postgresql://hr_bot_user:hrbot123@localhost:5432/postgres" -c "CREATE DATABASE clinic_tests;"`
3. Скопировать `backend/.env.example` в `backend/.env`, при необходимости поправить `DATABASE_URL` (внутри Docker кластера — хост `hr_postgres_dev`, порт `5432`).
4. Миграции: из каталога `backend/`: `npm run migrate`, затем `npm run start` (и фронт из `frontend/``npm run dev`).
4. Миграции: из каталога `backend/`: `npm run migrate`, затем `npm start` (и фронт из `frontend/``npm run dev`).
Старый вариант **только** с локальным Postgres на порту 5433: корневой `docker compose up -d` в TestingWebApp и в `.env` порт `5433` (или отдельные `DB_*` без `DATABASE_URL`) — оставлен для разработки без общего `Postgres_TG_Bots`.
**Без общего кластера** (только отладка): `docker compose --profile standalone up -d` в TestingWebApp — Postgres на **5433**, тогда в `.env` укажите `DATABASE_URL=...localhost:5433/clinic_tests` или `DB_PORT=5433` с `DB_NAME`/`DB_USER` из compose.
**Если `npm run migrate` пишет `ECONNREFUSED ...:5433`:** в `backend/.env` нет (или кривой) `DATABASE_URL` на **5432**, и сработал старый `DB_PORT=5433`. Задайте `DATABASE_URL` как в `backend/.env.example` для общего Postgres.
### Данные, сотрудники, интеграция с HR

15
backend/.env.example

@ -1,10 +1,11 @@
# Как в HR_TG_Bot: тот же Postgres из Postgres_TG_Bots (docker-compose.dev.yml),
# отдельная база clinic_tests — таблицы приложения не смешиваются с hr_bot_test
# (связь с штатом по staff_members.id; чтение hr_bot_test — отдельный DSN в коде, см. card1 A.x).
# telegram_id в бизнес-логике модуля не используем (только справка в HR).
# --- Рекомендуемый вариант: ОБЩИЙ кластер (Postgres_TG_Bots) ---
# Скопируйте в backend/.env и задайте минимум DATABASE_URL + JWT_SECRET.
# Не оставляйте в .env устаревший DB_PORT=5433, если пользуетесь 5432 — иначе,
# при отсутствии/ошибке в DATABASE_URL пул уйдёт на DB_* и снова «не туда».
#
# Локально (порт 5432 на хосте, как в Postgres_TG_Bots):
# DATABASE_URL=postgresql://hr_bot_user:hrbot123@localhost:5432/clinic_tests
# Как в HR_TG_Bot: тот же Postgres (Postgres_TG_Bots/docker-compose.dev.yml),
# отдельная база clinic_tests (не путать с hr_bot_test).
# Локально (порт 5432, как в Postgres_TG_Bots на хосте):
#
# Backend в Docker рядом с HR: хост — container_name Postgres, порт 5432 внутри сети:
# DATABASE_URL=postgresql://hr_bot_user:hrbot123@hr_postgres_dev:5432/clinic_tests
@ -12,7 +13,7 @@
# Базу clinic_tests создают один раз (от суперпользователя контейнера):
# psql "postgresql://hr_bot_user:hrbot123@localhost:5432/postgres" -c "CREATE DATABASE clinic_tests;"
#
# Если DATABASE_URL не задан, используются переменные ниже (устаревший сценарий со своим Postgres на 5433).
# Если DATABASE_URL НЕ задан, берутся DB_* (fallback). Для общего кластера задавайте DATABASE_URL.
# DB_HOST=localhost
# DB_PORT=5432
# DB_NAME=clinic_tests

11
docker-compose.yml

@ -1,10 +1,13 @@
# Опционально: изолированный Postgres на 5433, если не используете общий кластер из
# ../Postgres_TG_Bots/docker-compose.dev.yml (сеть hr_postgres_dev_net, порт 5432).
# Основной сценарий: поднять Postgres там, создать БД clinic_tests, в backend/.env задать DATABASE_URL
# (см. backend/.env.example) — аналогично HR_TG_Bot (DATABASE_URL к hr_postgres_dev или localhost:5432).
# По умолчанию этот compose ничего не поднимает — используется ОБЩИЙ Postgres из
# ../Postgres_TG_Bots/docker-compose.dev.yml (порт 5432 на хосте, сеть hr_postgres_dev_net).
# В backend/.env: DATABASE_URL=...localhost:5432/clinic_tests (см. backend/.env.example).
#
# Только если общий кластер не нужен, изолированный Postgres (порт 5433):
# docker compose --profile standalone up -d
services:
postgres:
profiles: ["standalone"]
image: postgres:15
environment:
POSTGRES_DB: clinic_tests

2
docs/шаги/01-project-setup.md

@ -26,7 +26,7 @@
### 1.3. Настройка окружения
- PostgreSQL: общий кластер с [Postgres_TG_Bots](../../../Postgres_TG_Bots) / [HR_TG_Bot](../../../HR_TG_Bot) (`DATABASE_URL` в `backend/.env`, отдельная БД `clinic_tests` — см. [README — Установка и запуск](../../README.md#установка-и-запуск)). Сотрудник в будущей интеграции — по **`staff_members.id`** в `hr_bot_test`; **`telegram_id`** в процессах модуля не используем. Опционально: локальный Postgres только для TestingWebApp — корневой `docker-compose.yml` (порт 5433).
- PostgreSQL: **по умолчанию** общий кластер [Postgres_TG_Bots](../../../Postgres_TG_Bots) / [HR_TG_Bot](../../../HR_TG_Bot) `DATABASE_URL` в `backend/.env``localhost:5432` / БД `clinic_tests` (см. [README](../../README.md#установка-и-запуск)). Локальный отдельный инстанс только по необходимости: `docker compose --profile standalone up` (порт 5433). Сотрудник в интеграции — `staff_members.id`; `telegram_id` в логике модуля не используем.
- Переменные окружения (`.env` по образцу `backend/.env.example`)
- Настройка линтеров и форматтеров

Loading…
Cancel
Save