Skip to content

AndyS1mpson/DB-Performance-Comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DB-Performance-Comparison

Databases performance comparison study project

Разработка

Структура проекта

-> *app*
   -> *alembic* — папка с миграциями
   -> *api* — слой с логикой обработки запросов через api
   -> *config* — глобальные для проекта вещи, вроде настроек (`config.py`)
   -> *db* — инициализация базы и сессии (скорее всего в процессе работы над проектом изменяться не будет)
   -> *models* — модели в терминологии SQLAlchemy (не путать с *schemas* в pydantic и бизнес-моделями)
   -> *schemas* — схемы для валидации/сериализации объектов запроса/ответа (они же модели в терминологии pydantic)
   -> *services* — сервисный слой, здесь размещается вся бизнес-логика.
   -> *utils* — полезные утилиты, использующиеся в проекте. Здесь реализованы функции генерации входных данных.
-> *.env* — файл для перечисления всех используемых внутри сервиса переменных среды
  • Создайте виртуальную среду:
python -m venv venv
  • В виртуальном окружении установите зависимости:
pip install -r app/requirements.txt
  • В корневой папке создайте файл .env со следующими переменными:
APP_UVICORN_OPTIONS  

# Dockerized database parameters.
DOCKER_POSTGRES_USER  
DOCKER_POSTGRES_PASSWORD  
DOCKER_POSTGRES_DB  
DOCKER_POSTGRES_HOST  
DOCKER_POSTGRES_PORT  
PGDATA  
DOCKER_POSTGRES_URL  

# Local database parameters.  
LOCAL_POSTGRES_USER  
LOCAL_POSTGRES_PASSWORD  
LOCAL_POSTGRES_DB  
LOCAL_POSTGRES_HOST  
LOCAL_POSTGRES_PORT  
LOCAL_POSTGRES_URL  

# Remote database parameters.
REMOTE_POSTGRES_USER  
REMOTE_POSTGRES_PASSWORD  
REMOTE_POSTGRES_DB  
REMOTE_POSTGRES_HOST  
REMOTE_POSTGRES_URL  
  • Экспортируйте переменные в окружающую среду:
source app/scripts/export_env.sh
  • Запустите контейнер с базой данных следующей командой:
docker-compose up --build
  • В отдельном терминале запустите сервис следующей командой:
uvicorn app.main:app --reload

Документацию API можно посмотреть по следующему URL: http://0.0.0.0:8000/docs

About

Databases performance comparison study project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages