Чтобы запустить у себя:
У вас должен быть локально поднят postgres. Если вам не хочется этого делать, советую запускать через Docker
- Создайте файл .env скопировав .env.example,
- Определите переменные окружения
# На данный момент версия Python 3.10
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate
pip install -r requirements/requirements.txt
# Запуск
./scripts/start-dev.sh
# Тесты
./scripts/tests/test-mock-ping.sh
- Устанавливаете докер
- Создайте файл .env
- Копируете .env.example в .env и определяете переменные окружения (можно оставить как есть)
# build
docker compose build
# up
docker compose up На 8080 порту запустится приложение fastapi, на 5432 postgres, на 1000 adminer (супер легковесный веб интерфейс для взаимодействия с базой)
Если запуск получится, то на localhost:1000 будет запущен adminer
Если вы не меняли .env.example при копировании, то credentials для доступа такие:
System: PostgreSQL
Server: database
Username: root
Password: root
Database: db
P.s. Неочевидный нюанс в том, что server это database, а не localhost, это связано с тем, что контейнеры для себя создают свою сеть, и в этой сети нету localhost. Вместо этого в качестве адресов контейнеров выступают названия их как сервисов (как прописано в docker-compose.yaml) P.p.s На самом деле вроде можно и localhost, можете проверить
После запуска базы данных вы можете загрузить тестовые данные из файла test_data/test_data.sql.
Используйте готовый скрипт для загрузки данных (убедитесь, что он находится в папке scripts/):
# Для настроек по умолчанию
./scripts/load-test-data.sh# Выполняем напрямую
docker exec -i database-core-database-1 psql -U root -d db -f /tmp/test_data.sqlИспользуя строку bash, запустите из папки с проектом:
docker exec -i database-core-database-1 psql -U root -d db < ./test_data/test_data.sql-
Откройте http://localhost:1000
-
Авторизуйтесь
# (по умолчанию)
System: PostgreSQL
Server: database
Username: root
Password: root
Database: db-
Нажмите "SQL-запрос"
-
Вставьте содержимое test_data.sql
-
Нажмите "Выполнить"
# Подключаемся к БД
docker compose exec database psql -U root -d db
# В интерактивной консоли psql:
db=# \dt # Список таблиц
db=# SELECT * FROM users LIMIT 1; # Пример запроса
# Вывод:
# author_id first_name middle_name last_name sex birth_date family_status_id has_children biography
# 1 Ivan Ivanovich Ivanov M 1910-01-01 1 1 Test biography
db=# \q # Выход