Проект запускается в Docker-контейнерах вместе со связанными приложениями
В файле указать следующие переменные:
- DJANGO_SECRET_KEY=<секретный ключ Django>
- POSTGRES_DB=movies
- POSTGRES_USER=movies
- POSTGRES_PASSWORD=<укажите ваш пароль>
Для запуска в режиме разработки
docker-compose build
docker-compose up -d
Для запуска в production
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
Тестирование проекта
cd tests/functional
docker-compose build
docker-compose up
- С помощью команды
docker ps
узнайте имя контейнера c приложением admin_panel - Войдите в контейнер и запустите консоль django shell командой
docker exec -it <имя контейнера> ./manage.py shell
- Внутри консоли выполните команды:
from movie.factories import make_objects
make_objects()
После запуска docker-compose индексы ElasticSearch (movies, genres, persons) создадутся и запонятся автоматически в течении 4-х минут. Для ручного обновления индексов необходимо:
- С помощью команды
docker ps
узнайте имя контейнера, в котором запущен redis - Войдите в контейнер
docker exec -it <имя контейнера> redis-cli
- Удалите ключ, который содержит дату предыдущего обновления индексов, командой
# del Movie_ETL [movies]
После этих действий индексы обновятся полностью (т.е. будет запрос на все записи базы данных).
Далее обновление индексов передёт в штатный режим - через каждые три минуты.
- Получение всех фильмов с пагинацией 127.0.0.1/api/v1/film?page=2
- Получение информации о персоне по uuid 127.0.0.1/api/v1/person/uuid
- Получение всей схемы сервиса 127.0.0.1/api/opeapi