Посеять Django + Postgres с помощью файла .sql
У меня есть .sql файл, которым я хотел бы засеять мое приложение django + postgres при сборке. Таким образом, у меня будут некоторые данные в моем приложении во время разработки.
Вот мой докерный материал:
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip3 install -r requirements.txt
COPY . /code/
docker-compose.yml
version: "3.9"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Django поддерживает этот случай с помощью фикстур: https://docs.djangoproject.com/en/3.2/howto/initial-data/. Вы можете сериализовать вашу .sql базу данных в json файл и передать его во время сборки с помощью команды loaddata.