43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
||
"""Проверка наличия таблиц схемы (books, chapters, chapter_analyses, tags, chapter_tags) в Postgres."""
|
||
import sys
|
||
|
||
try:
|
||
import psycopg2
|
||
except ImportError:
|
||
print("Установите: pip install psycopg2-binary")
|
||
sys.exit(1)
|
||
|
||
HOST = "192.168.88.15"
|
||
PORT = 5432
|
||
USER = "n8n"
|
||
PASSWORD = "n8n_password"
|
||
DB = "n8n"
|
||
EXPECTED = {"books", "chapters", "chapter_analyses", "tags", "chapter_tags"}
|
||
|
||
try:
|
||
conn = psycopg2.connect(
|
||
host=HOST, port=PORT, user=USER, password=PASSWORD, dbname=DB
|
||
)
|
||
with conn.cursor() as cur:
|
||
cur.execute("""
|
||
SELECT table_name FROM information_schema.tables
|
||
WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
|
||
ORDER BY table_name;
|
||
""")
|
||
found = {row[0] for row in cur.fetchall()}
|
||
conn.close()
|
||
print(f"Postgres {HOST}:{PORT}/{DB}")
|
||
print("Таблицы в public:", ", ".join(sorted(found)) if found else "(нет)")
|
||
missing = EXPECTED - found
|
||
extra = found - EXPECTED
|
||
if not missing:
|
||
print("Ожидаемые таблицы этапа 8: все на месте.")
|
||
else:
|
||
print("Не найдены:", ", ".join(sorted(missing)))
|
||
if extra:
|
||
print("Доп. таблицы:", ", ".join(sorted(extra)))
|
||
except Exception as e:
|
||
print(f"Ошибка: {e}")
|
||
sys.exit(1)
|