#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
всякий раз, когда вносите изменения в свои модели.