Skip to content

Финальный вариант групповой работы с Docker и Actions

Notifications You must be signed in to change notification settings

AntonLukin1986/yamdb_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI & CD

YaMDb

Сервис для отзывов

Собирает отзывы пользователей на различные произведения в категориях: «Книги», «Фильмы», «Музыка». Список категорий может быть расширен администратором. Также произведению может быть присвоен жанр из списка предустановленных, либо добавленный администратором. Пользователи оставляют к произведениям отзывы и ставят оценку; из пользовательских оценок формируется рейтинг произведения. На одно произведение пользователь может оставить только один отзыв. Взаимодействие с сервисом реализовано с помщью API.

Технологии

  • Python 3.9.9
  • Django 2.2.19
  • Django Rest Framework 3.12.4
  • Simple JWT 5.0.0
  • Docker

Как запустить проект

Убедитесь, что у вас установлено приложение Docker.

Клонировать репозиторий:

git clone https://github.com/AntonLukin1986/infra_sp2

Перейти в директорию с файлом docker-compose.yaml:

cd infra_sp2/infra

Создать .env файл по следующему шаблону:

KEY=1a2b3c # секретный ключ джанго-проекта (установите свой)
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
ALLOWED_HOSTS=localhost web (добавьте необходимые хосты через пробел)

Выполнить команду:

sudo docker-compose up -d

Далее необходимо выполнить миграции, создать суперпользователя и собрать статику, выполнив по очереди следующие команды:

sudo docker-compose exec web python manage.py migrate
sudo docker-compose exec web python manage.py createsuperuser
sudo docker-compose exec web python manage.py collectstatic --no-input

Заполнение базы данных из файлов *.csv

Проект имеет возможность с помощью специальной команды наполнить БД данными из файлов *.csv Данный способ хорош тем, что данные для заполнения можно подготовить даже в приложении "Блокнот", а наполнение осуществляется одной командой в консоли терминала.

Для начала необходимо проверить, чтобы имена csv-файлов с данными были следующими:

category.csv
comments.csv
genre_title.csv
genre.csv
reviews.csv
titles.csv
users.csv

Скрипт чувствителен к данным именам, но при необходимости можно поменять их в самом скрипте, в значениях словаря 'paths'. Располагаться файлы должны в директории static/data/. Для корректной работы БД необходимо убедиться, что все поля таблиц заполнены.

Для заполнения БД выполните команду:

sudo docker-compose exec web python manage.py csv_to_base

Сообщение 'Успешно! Данные из *.csv теперь в базе.' означает, что данные перенесены успешно.

Файл со скриптом находится в директории reviews/management/commands/

Авторы проекта

Абрамсон Арсений ArS181

Антон Лукин AntonLukin1986

Эльвир Давлетгареев elvir906

Ознакомиться с запущенным проектом можно по ссылкам: админка, документация

About

Финальный вариант групповой работы с Docker и Actions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages