Files
db_example_app/README.md
T
2026-04-20 16:42:53 +03:00

112 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### Пример приложения для работы с БД
Небольшое десктоп-приложение на PyQt5 для работы с PostgreSQL, Neo4j, Apache AGE, InfluxDB 3 Core, MongoDB и Redis.
### Стек
- PyQt5 — графический интерфейс
- PostgreSQL (psycopg2) — реляционная БД для пользователей
- Neo4j — графовая БД
- Apache AGE — графовая БД в рамках PostgreSQL
- InfluxDB 3 Core — БД временных рядов
- MongoDB (pymongo) — документ-ориентированная БД
- Redis (redis-py) — in-memory key-value БД
### Скриншоты
**PostgreSQL:**
![form.png](form.png)
**Neo4j:**
![neo_form.png](neo_form.png)
### Требования
- Python 3.10+
- Установленный PostgreSQL и доступ к серверу БД
- Установленный Neo4j и загруженный обучающий граф фильмов (Movie Graph example)
- Для Apache AGE: установленное расширение `age` в PostgreSQL и доступ к базе, где оно включено
- Для InfluxDB 3 Core: запущенный сервер, заранее созданная база и токен с правами на запись и чтение
- Для MongoDB: запущенный MongoDB сервер и доступ к целевой базе
- Для Redis: запущенный Redis сервер и доступ к нему
### Настройка окружения
1. Переименовать файл примера переменных окружения `.env_example` в `.env`:
Затем откройте `.env` и при необходимости измените значения:
```env
POSTGRES_ACTIVE=false # включить PostgreSQL-часть приложения, установив true
POSTGRES_USER=postgres
POSTGRES_DB=university
POSTGRES_PASS=your_password
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
NEO_ACTIVE=false # включить Neo4j-часть приложения, установив true
NEO_USER=neo4j
NEO_PASS=your_password
NEO_HOST=neo4j://localhost:7687
AGE_ACTIVE=false # включить Apache AGE, установив true
AGE_USER=postgres
AGE_PASS=your_password
AGE_HOST=localhost
AGE_PORT=5432
AGE_DB=university
AGE_GRAPH_NAME=movie_graph
INFLUX_ACTIVE=false # включить InfluxDB 3 Core, установив true
INFLUXDB3_HOST=http://localhost:8181
INFLUXDB3_AUTH_TOKEN=your_token
INFLUXDB3_DATABASE=sensors
MONGO_ACTIVE=false # включить MongoDB, установив true
MONGO_URI=mongodb://localhost:27017
MONGO_DB=movie_data
MONGO_COLLECTION=movies
REDIS_ACTIVE=false # включить Redis, установив true
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASS=
```
2. Создайте и активируйте виртуальное окружение:
Windows, PowerShell:
```powershell
cd C:\Users\Litoq\Documents\Projects\db_example_app
py -m venv .venv
.\.venv\Scripts\Activate.ps1
```
Linux, bash:
```bash
cd ~/Projects/db_example_app
python3 -m venv .venv
source .venv/bin/activate
```
3. Установите зависимости:
```bash
pip install -r requirements.txt
```
### Запуск приложения
В активированном виртуальном окружении выполните:
```powershell
py main.py
```
Для PostgreSQL, Neo4j, Apache AGE, InfluxDB 3 Core, MongoDB и Redis запросы выполняются только при `*_ACTIVE=true`.