Сохранение в Postgres (шаг 8)
Сохранение анализа главы и тегов в реляционную БД: книга, глава, запись в chapter_analyses, теги в tags, связи в chapter_tags. Вход — merged JSON (шаг 5) с метаданными из этапа 1.
Схема
Перед первым запуском применить схему:
psql -h localhost -U n8n -d n8n -f schema.sql
# или через docker: docker exec -i postgres psql -U n8n -d n8n < 8_сохранение_postgres/schema.sql
Таблицы: books, chapters, chapter_analyses, tags, chapter_tags (см. ARCHITECTURE_SUMMARY.md).
Вход
- merged JSON (шаг 5): book_id, chapter_id, chapter_number, chapter_title, book_title, author, framework, insights, application, limitations, tags. Метаданные должны быть подмешаны через
--input-chapterна шаге 5.
Действия
- Upsert книги (books) по book_id.
- Upsert главы (chapters) по chapter_id.
- Insert/update анализа в chapter_analyses (analysis_result = framework + insights + application + limitations).
- Get-or-create тегов в tags (name, category); связи в chapter_tags (chapter_id, tag_id, confidence, validated, source='ai_validation').
Использование
pip install -r requirements.txt # один раз
python3 save_to_postgres.py 5_мерж_анализа_и_тегов/merged_with_tags.json [--validation-score 0.95]
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
DATABASE_URL |
— | Полный URL (postgresql://user:pass@host:port/dbname). Если задан, остальные игнорируются. |
POSTGRES_HOST |
localhost | Хост Postgres |
POSTGRES_PORT |
5432 | Порт |
POSTGRES_USER |
n8n | Пользователь |
POSTGRES_PASSWORD |
n8n_password | Пароль |
POSTGRES_DB |
n8n | Имя БД |
В Docker используйте POSTGRES_HOST=postgres (имя сервиса).