### Пример приложения для работы с БД Небольшое десктоп-приложение на 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](img/postgres_form.png) **Neo4j:** ![neo_form.png](img/neo_form.png) **MongoDB:** ![neo_form.png](img/mongo_form.png) **Redis:** ![neo_form.png](img/redis_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`.