У меня простая монолитная c архитектура:
Проект Django, размещенный на экземпляре EC2, общается с PostgreSQL БД, работающей на том же экземпляре. Я выбрал эту архитектуру с учетом трафика c и стоимости. Так что не bash мне на это. :)
Для аварийного восстановления я регулярно сбрасываю свою БД (полный дамп pg_dump -U postgres fishercoder_db > fishercoder_dump.sql
).
При восстановлении я не могу заставить Django и восстанавливающую БД нормально разговаривать с каждым другое:
Если я запускаю Django и сначала запускаю ./manage.py migrate
, а затем восстанавливаю БД из дампа, это терпит неудачу, потому что Django уже создал кучу внутренних таблиц после запуска ./manage.py migrate
с точно таким же именем в моем дампе;
Если я сначала восстановлю БД из дампа, мое приложение Django не сможет встать из-за недостаточных привилегий для запуска ./manage.py migrate
, подробности спрашиваются здесь .
Мой вопрос:
Разумна ли моя стратегия DR? Любые другие более оптимальные способы?
Как я могу заставить этот подход работать: восстановить мой сайт на новом экземпляре EC2 с БД, восстановленной из дампа. sql.