Самый простой способ познакомиться с PostgreSQL — запустить его в docker-контейнере. Для этого достаточно выполнить команду:
docker run -d --rm -p 5432:5432 --name postgres -v <pwd>/admin_psql_data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=<secret_password> postgres:14
Подключитесь к контейнеру:
docker exec -it postgres bash
Теперь вы внутри контейнера. Чтобы попасть в PostgreSQL shell, наберите такую команду:
psql -U postgres
Для выхода из PostgreSQL shell введите \q
. Чтобы вернуться обратно на хост-машину, выполните команду exit
.
Внутри PostgreSQL shell:
- создайте базу
CREATE DATABASE movies;
- создайте пользователя
CREATE USER movies WITH PASSWORD 'movies';
- назначте права работы с базой, созданному пользователю
GRANT ALL PRIVILEGES ON DATABASE "movies" to movies;
После чего запустите SQL команды от лица созданного пользователя psql -U movies
, команды находятся в
/schema_design/db_schema.sql
Если вы используете Macbook на процессоре M1, зависимости надо установить с помощью команды
arch -arm64 pip install -r requirements.txt --no-cache-dir
Создав таблицы, остается только перенести данные из Sqlite в Postgres, файл запуска находится в
/sqlite_to_postgres/load_data.py
Теперь можно запустить проект Django вместе с миграциями:
python manage.py migrate --fake-initial
or
python manage.py migrate --fake
Создаем супер пользователя и начинаем работать в админке:
python manage.py createsuperuser
python manage.py runserver
Мы рады, что вы приступили к выполнению 1 задания из курса Middle Python-разработчик.
Описание структуры и порядок выполнения проекта:
schema_design
- раздел c материалами для новой архитектуры базы данных.sqlite_to_postgres
- раздел с материалами по миграции данных.movies_admin
- раздел с материалами для панели администратора.
Успехов!