Посеять 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.

Вернуться на верх