Установка окружения

Для корректной работы локальной версии приложения нужны следующие пакеты:

Проверить версию python можно командой

python --version
Если версия ниже 3.10, актуальную версию установить отдельно, пакет почти во всех операционных системах называется python3.10. Например, в Ubuntu:
sudo apt-get install python3.10
В таком случае во всех командах ниже python нужно заменить на python3.10.

Чтобы изолировать версию и установленные модули в Python, рекомендуется использовать виртуальное окружение. Общая документация модуля виртуальных окружений venv расположена здесь: https://docs.python.org/3/library/venv.html. Для минимально работающего локального окружения понадобится сделать следующие шаги:

  1. Склонировать к себе репозиторий:

    git clone https://github.com/HyperLEDA/db-app.git
    cd db-app
    

  2. Создать виртуальное окружение в директории проекта

    python -m venv .venv
    

    Эта команда создаст в директории .venv полную копию интерпретатора python, скопирует туда все системные пакеты и бинарные файлы, которые необходимы для его работы. Все модули, которые будут устанавливаться позже, будут установлены внутри этой директории. Таким образом, в случае каких-либо проблем с интерпретатором, можно полностью удалить директорию .venv и переустановить все зависимости начиная с этого шага. Возможно, перед запуском команды выше нужно будет установить пакет python-venv (или python3.10-venv). В случае необходимости команда сообщит об этом.

  3. Активировать виртуальное окружение

    source .venv/bin/activate
    
    При любом перезапуске терминала нужно будет ещё раз ввести эту команду. Чтобы убедиться, что окружение активировано, можно проверить, на что указывает интерпретатор python:

    (.venv) kraysent@kraysent-osx:~/db-app# which python 
    /home/kraysent/db-app/.venv/bin/python
    

    Он должен вывести путь к директории проекта. Кроме того, в начале строки ввода команды будет всегда написано (.venv).

  4. Установить все зависимости проекта:

    make install
    

    Используемые библиотеки python перечислены в файле https://github.com/HyperLEDA/db-app/blob/master/requirements.txt, эта команда установит их.

  5. Чтобы проверить, что зависимости установились корректно, можно прогнать полный набор тестов:

    make test-all
    

    Этот же набор тестов можно запускать при любых изменениях в коде, он же запускается при создании Pull Request в GitHub.

  6. Подключиться к локальной версии базы данных можно при помощи команды

    make start-db
    

    Эта команда поднимет контейнер (об этом стоит почитать подробнее, но, простыми словами, контейнер - это изолированная от всей остальной системы виртуальная машина, доступная из терминала) с БД 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 на всех системах):

    psql -d 'postgresql://127.0.0.1:6432/hyperleda?user=hyperleda&password=password'
    

    Внутри можно запускать любые SQL команды для тестирования, все изменения будут только на вашем компьютере. При изменениях файлов миграций нужно перезапустить контейнер с базой данных (но стоит иметь ввиду, что это сотрёт все данные в ней):

    make stop-db
    make start-db