Files
2025-09-23 11:36:55 +05:00

3.0 KiB
Raw Permalink Blame History

База данных PostgreSQL для Telegram бота

Этот модуль содержит полную настройку для работы с PostgreSQL через SQLAlchemy.

Структура файлов

  • database.py - Основные классы для подключения к базе данных
  • models.py - Модели SQLAlchemy (таблицы)
  • repositories.py - Репозитории для работы с данными
  • services.py - Высокоуровневые сервисы
  • example.py - Примеры использования
  • requirements.txt - Зависимости
  • .env.example - Пример файла с переменными окружения

Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка базы данных

Создайте файл .env на основе .env.example:

DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
DB_NAME=telegram_bot

3. Основное использование

from database import db_service, setup_database

# Настройка базы данных (создание таблиц)
setup_database()

# Регистрация пользователя
user, created = db_service.register_user(
    telegram_id=123456789,
    username="example_user",
    first_name="Иван"
)

# Сохранение сообщения
message = db_service.save_message(
    telegram_message_id=1001,
    telegram_user_id=123456789,
    text="Привет!"
)

# Работа с настройками
db_service.set_setting("bot_name", "Мой Бот")
bot_name = db_service.get_setting("bot_name")

Основные возможности

Модели данных

  • User - Пользователи телеграм бота
  • Message - Сообщения от пользователей
  • BotSettings - Настройки бота

Репозитории

  • UserRepository - CRUD операции с пользователями
  • MessageRepository - CRUD операции с сообщениями
  • SettingsRepository - CRUD операции с настройками

Сервисы

  • DatabaseService - Высокоуровневый API для работы с данными

Примеры использования

Запустите example.py для демонстрации основных возможностей:

python example.py

Настройки

Все настройки подключения к базе данных можно задать через переменные окружения:

  • DB_USER - имя пользователя PostgreSQL
  • DB_PASSWORD - пароль
  • DB_HOST - хост (по умолчанию localhost)
  • DB_PORT - порт (по умолчанию 5432)
  • DB_NAME - имя базы данных

Требования

  • Python 3.8+
  • PostgreSQL 10+
  • SQLAlchemy 2.0+