102 lines
3.0 KiB
Markdown
102 lines
3.0 KiB
Markdown
# База данных PostgreSQL для Telegram бота
|
||
|
||
Этот модуль содержит полную настройку для работы с PostgreSQL через SQLAlchemy.
|
||
|
||
## Структура файлов
|
||
|
||
- `database.py` - Основные классы для подключения к базе данных
|
||
- `models.py` - Модели SQLAlchemy (таблицы)
|
||
- `repositories.py` - Репозитории для работы с данными
|
||
- `services.py` - Высокоуровневые сервисы
|
||
- `example.py` - Примеры использования
|
||
- `requirements.txt` - Зависимости
|
||
- `.env.example` - Пример файла с переменными окружения
|
||
|
||
## Быстрый старт
|
||
|
||
### 1. Установка зависимостей
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. Настройка базы данных
|
||
|
||
Создайте файл `.env` на основе `.env.example`:
|
||
|
||
```bash
|
||
DB_USER=postgres
|
||
DB_PASSWORD=your_password
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
DB_NAME=telegram_bot
|
||
```
|
||
|
||
### 3. Основное использование
|
||
|
||
```python
|
||
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` для демонстрации основных возможностей:
|
||
|
||
```bash
|
||
python example.py
|
||
```
|
||
|
||
## Настройки
|
||
|
||
Все настройки подключения к базе данных можно задать через переменные окружения:
|
||
|
||
- `DB_USER` - имя пользователя PostgreSQL
|
||
- `DB_PASSWORD` - пароль
|
||
- `DB_HOST` - хост (по умолчанию localhost)
|
||
- `DB_PORT` - порт (по умолчанию 5432)
|
||
- `DB_NAME` - имя базы данных
|
||
|
||
## Требования
|
||
|
||
- Python 3.8+
|
||
- PostgreSQL 10+
|
||
- SQLAlchemy 2.0+ |