#django #database #git #digital-ocean #reset
Вопрос:
Я создал приложение, которое использует Django в качестве Rest API (платформа Django rest). После развертывания кода в цифровом океане с использованием сервисов производственного уровня все работает хорошо. База данных postgresql заполняется правильно . Там нет сброса сервера, как на Heroku.
За исключением того, что если я изменю файл и передам изменение через gitlab(Digital ocean подхватит изменение и автоматически развернет обновленную версию сервера), база данных вернется в исходное состояние. Я бы хотел, чтобы сервер оставался таким же.
Я удалил все файлы миграции перед запуском обновлений, но безрезультатно. Я предполагаю, что это должно быть что-то довольно тривиальное, но я не могу его найти.
База данных размещена также в цифровом океане. Я не делал никаких настроек. Не будет ли оно управляться автоматически по мере развертывания кода на его серверах?
Комментарии:
1. Где находится база данных? Как он настроен? Здесь недостаточно информации, чтобы рассказать вам, в чем проблема.
2. Какую базу данных вы используете и как она настроена? использовали ли вы какую-либо контейнерную технологию для развертывания своего приложения, такого как Docker?
3. Это база данных postgresql 12
4. Вы храните какие-либо свои данные postgresql в gitlab ?
5. да, в gitlab есть файл db.sqlite3. Нужно его удалить?
Ответ №1:
Я понял, что пошло не так. Использование базы данных sqlite при разработке-это одно, но предположение, что при развертывании вашего приложения django на поставщике услуг оно будет обрабатывать все управление базой данных, — это 1000 шагов слишком далеко.
Логично, что всякий раз, когда я отправлял новое обновление на сервер, бд сбрасывалась с помощью локального файла БД sqlite проекта.
Поэтому я создал конкретную базу данных в digital ocean, изменил конфигурацию базы данных в файле настроек моего проекта django, чтобы подключиться к ней. Создание проекта с использованием внешней базы данных. затем мне просто пришлось перенести структуру базы данных проекта во внешнюю базу данных.
И Вуаля. проблема решена