восстановить базу данных PostgreSQL в проекте Django

#django #postgresql #docker

#django #postgresql #docker

Вопрос:

Я работаю над приложением, которое работает на Ubuntu 18.04, оно состоит из приложения Django и сервера PostgreSQL, каждый из которых запускается в отдельном контейнере Docker.
Я создал резервную копию для своей базы данных, чтобы я мог сохранить ее и запустить на тестовом сервере для тестовых случаев.
Теперь я переношу свою резервную базу данных на другой тестовый сервер, но проблема в том, что при запуске:

 docker-compose -f production.yml up
  

оба контейнера Django и PostgreSQL работают нормально, проблема в том, что мне следует сделать в первую очередь, чтобы все работало на тестовом сервере, как и все, что работает на производственном сервере?
должен ли я сначала восстановить резервную базу данных, а затем запустить:

 python manage.py migrate
  

или я должен перенести, а затем восстановить резервную базу данных, на самом деле я запускал оба, и каждый раз после успешного завершения обоих я получал эту ошибку:

 ProgrammingError at /accounts/login/
  

итак, что я должен сделать, чтобы восстановить резервную базу данных?

Еще один вопрос:
Я попытался проигнорировать резервную базу данных и просто запустить:

 python manage.py migrate
  

и создать базу данных с нуля, но я получил ту же ошибку, что и раньше!!!
У меня есть что-то общее, с чем я не прав, поэтому, пожалуйста, помогите мне любой информацией по теории резервного копирования базы данных.

Ответ №1:

Предполагая, что вы используете pg_dump, вам не нужно запускать migrate.py . Файл резервной копии воссоздаст все таблицы и все данные в таблицах. Перед запуском psql для восстановления данных вам необходимо удалить базу данных и создать ее заново. После того, как вы создали ее и восстановили файл, вы можете запускать migrate.py всякий раз, когда вносите изменения в свои модели.