Правильный перенос базы данных Postgres в Docker/Django/Heroku/Postgres
У меня есть проект Django, размещенный на сервере IIS с базой данных Postgresql, который я переношу на проект Docker/Heroku. Я нашел несколько хороших ресурсов в Интернете, но пока не повезло полностью. Я пытался использовать функцию dumpdata/loaddata, но всегда сталкивался с ошибками ограничений, отсутствующими отношениями или ошибками типа содержимого. Я бы хотел просто сбросить всю базу данных, а затем восстановить ее в Docker. Вот мой docker-compose:
version: "3.7"
services:
db:
image: postgres
volumes:
- 'postgres:/var/lib/postgresql/data'
ports:
- "5432:5432"
environment:
- POSTGRES_NAME=${DATABASE_NAME}
- POSTGRES_USER=${DATABASE_USER}
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=${DATABASE_NAME}
networks:
- hello-world
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- '.:/code'
ports:
- "8000:8000"
env_file:
- .env
depends_on:
- db
networks:
- hello-world
networks:
hello-world:
driver: bridge
volumes:
postgres:
driver: local
Мне удалось решить эту проблему с помощью следующей команды: "docker exec -i postgres pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d < ./latest.dump"