Установка окружения
Для корректной работы локальной версии приложения нужны следующие пакеты:
git
make
python
версии 3.10 или выше- пакет
libpq
(apt-get install libpq-dev
на Ubuntu,brew install libpq
на MacOS). Обычно поставляется вместе с Postgres. docker
: https://docs.docker.com/engine/install/docker-compose
(скорее всего будет установлен вместе сdocker
): https://docs.docker.com/compose/install/linux/
Проверить версию python можно командой
Если версия ниже 3.10, актуальную версию установить отдельно, пакет почти во всех операционных системах называетсяpython3.10
. Например, в Ubuntu:
В таком случае во всех командах ниже python
нужно заменить на python3.10
.
Чтобы изолировать версию и установленные модули в Python, рекомендуется использовать виртуальное окружение. Общая документация модуля виртуальных окружений venv
расположена здесь: https://docs.python.org/3/library/venv.html. Для минимально работающего локального окружения понадобится сделать следующие шаги:
-
Склонировать к себе репозиторий:
-
Создать виртуальное окружение в директории проекта
Эта команда создаст в директории
.venv
полную копию интерпретатора python, скопирует туда все системные пакеты и бинарные файлы, которые необходимы для его работы. Все модули, которые будут устанавливаться позже, будут установлены внутри этой директории. Таким образом, в случае каких-либо проблем с интерпретатором, можно полностью удалить директорию.venv
и переустановить все зависимости начиная с этого шага. Возможно, перед запуском команды выше нужно будет установить пакетpython-venv
(илиpython3.10-venv
). В случае необходимости команда сообщит об этом. -
Активировать виртуальное окружение
При любом перезапуске терминала нужно будет ещё раз ввести эту команду. Чтобы убедиться, что окружение активировано, можно проверить, на что указывает интерпретатор python:Он должен вывести путь к директории проекта. Кроме того, в начале строки ввода команды будет всегда написано
(.venv)
. -
Установить все зависимости проекта:
Используемые библиотеки python перечислены в файле https://github.com/HyperLEDA/db-app/blob/master/requirements.txt, эта команда установит их.
-
Чтобы проверить, что зависимости установились корректно, можно прогнать полный набор тестов:
Этот же набор тестов можно запускать при любых изменениях в коде, он же запускается при создании Pull Request в GitHub.
-
Подключиться к локальной версии базы данных можно при помощи команды
Эта команда поднимет контейнер (об этом стоит почитать подробнее, но, простыми словами, контейнер - это изолированная от всей остальной системы виртуальная машина, доступная из терминала) с БД Postgres нужной нам версии, прогонит там все файлы ("миграции") из https://github.com/HyperLEDA/db-app/tree/master/postgres/migrations в нужном порядке (от версии V001 до последней) и таким образом восстановит самую актуальную схему базы данных.
Далее подключиться к этой базе данных можно будет по строке подключения
postgresql://127.0.0.1:6432/hyperleda?user=hyperleda&password=password
через любой клиент Postgres, например,psql
(поставляется вместе с Postgres на всех системах):Внутри можно запускать любые SQL команды для тестирования, все изменения будут только на вашем компьютере. При изменениях файлов миграций нужно перезапустить контейнер с базой данных (но стоит иметь ввиду, что это сотрёт все данные в ней):