Starck43
@Starck43
Full-stack разработчик (Python, React)

Как избежать ошибки 500 после синхронизации локальных приложений с удаленными?

Создаю свой первый проект на Django и уже выложил в продакшн первую версию.

Но вскоре столкнулся с неожиданной для себя проблемой, когда казалось бы (для меня) ничего криминального в том, что я сделал - нет. Я синхронизировал через десктопное ftp-приложение папку со своими приложениями apps/* с удаленным хостингом и это спровоцировало ошибку 500.

Техподдержка 4 часа почти искала нарушение работы скриптов и толком не смогли дать ответ почему все заработало.
Предложили лишь на будущее синхронизировать установленные модули обязательно.

Вот что я делал на локалке прежде чем выгрузить:
1.Установил сторонний модуль со своими зависимостями
2.Удалил модуль после тестирования (не сравнил requrements c pip list на наличие хвостов)
3. Обновил в папке templatetags файл с кастомными фильтрами
4. Переименовал его и изменил это имя в index.html

Дальше синхронизировался, куда улетели __PYCACHE__ из всех подпапок моих приложений и появился в templatetags новый файл, что я переименовал на локалке (здесь их стало два, естественно,но я не думаю, что это могло вызвать остановку работы сценариев)

Мои предположения:
1. или кэши объединились в одно
2. или все-таки pip instal/uninstall на локалке как-то мог сказаться
Возможно что-то есть еще, что я не вижу

Помогите, кто понимает что происходит, дабы мне больше не попадать в такую ловушку. Хотелось бы в принципе понять что дозволено объединять, а что только индивидуально ручками на сервере править.
Если есть статья на эту тему, то был бы признателен за ссылку.

Спасибо заранее.
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
  • байт-код двух версий приложения не стоит смешивать, отгребете
  • виртуальное окружение по тем же причинам нельзя обновлять на лету
  • 5 лет назад я предложил бы переключение версий приложения на симлинках, а сейчас можно использовать для тех же целей любые контейнеры по вкусу
  • неплохо бы еще иметь 2 сервера, переключать по одному и следить за тем, чтобы следующий релиз не ломал одновременно работающий предыдущий, но это уже зависит от соотношения QoS к затратам
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы