- Краулеры: smart_crawler.py, regional_crawler.py - Аудит: audit_orel_to_excel.py, audit_chukotka_to_excel.py - РКН проверка: check_rkn_registry.py, recheck_unclear_rkn.py - Отчёты: create_orel_horizontal_report.py - Обработка: process_all_hotels_embeddings.py - Документация: README.md, DB_SCHEMA_REFERENCE.md
65 lines
1.5 KiB
Python
65 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
"""Создание таблиц в базе данных"""
|
|
|
|
import psycopg2
|
|
from urllib.parse import unquote
|
|
|
|
# Параметры подключения
|
|
DB_HOST = "147.45.189.234"
|
|
DB_PORT = 5432
|
|
DB_NAME = "default_db"
|
|
DB_USER = "gen_user"
|
|
DB_PASSWORD = unquote("2~~9_%5EkVsU%3F2%5CS")
|
|
|
|
print("Подключаюсь к базе данных...")
|
|
|
|
try:
|
|
conn = psycopg2.connect(
|
|
host=DB_HOST,
|
|
port=DB_PORT,
|
|
database=DB_NAME,
|
|
user=DB_USER,
|
|
password=DB_PASSWORD
|
|
)
|
|
|
|
cur = conn.cursor()
|
|
|
|
# Читаем SQL схему
|
|
with open('db_schema.sql', 'r', encoding='utf-8') as f:
|
|
schema_sql = f.read()
|
|
|
|
print("Создаю таблицы...")
|
|
cur.execute(schema_sql)
|
|
conn.commit()
|
|
|
|
# Проверяем созданные таблицы
|
|
cur.execute("""
|
|
SELECT tablename
|
|
FROM pg_tables
|
|
WHERE schemaname = 'public' AND tablename LIKE 'hotel%'
|
|
ORDER BY tablename;
|
|
""")
|
|
|
|
tables = cur.fetchall()
|
|
|
|
print(f"\n✓ Успешно создано {len(tables)} таблиц:")
|
|
for (table,) in tables:
|
|
cur.execute(f"""
|
|
SELECT count(*) FROM {table};
|
|
""")
|
|
count = cur.fetchone()[0]
|
|
print(f" - {table} ({count} записей)")
|
|
|
|
cur.close()
|
|
conn.close()
|
|
|
|
print("\n✓ Схема базы данных готова к использованию!")
|
|
|
|
except Exception as e:
|
|
print(f"\n✗ Ошибка: {e}")
|
|
exit(1)
|
|
|
|
|
|
|
|
|