Как избежать ошибки 500 после синхронизации локальных приложений с удаленными?
Создаю свой первый проект на Django и уже выложил в продакшн первую версию.
Но вскоре столкнулся с неожиданной для себя проблемой, когда казалось бы (для меня) ничего криминального в том, что я сделал - нет. Я синхронизировал через десктопное ftp-приложение папку со своими приложениями apps/* с удаленным хостингом и это спровоцировало ошибку 500.
Техподдержка 4 часа почти искала нарушение работы скриптов и толком не смогли дать ответ почему все заработало.
Предложили лишь на будущее синхронизировать установленные модули обязательно.
Вот что я делал на локалке прежде чем выгрузить:
1.Установил сторонний модуль со своими зависимостями
2.Удалил модуль после тестирования (не сравнил requrements c pip list на наличие хвостов)
3. Обновил в папке templatetags файл с кастомными фильтрами
4. Переименовал его и изменил это имя в index.html
Дальше синхронизировался, куда улетели __PYCACHE__ из всех подпапок моих приложений и появился в templatetags новый файл, что я переименовал на локалке (здесь их стало два, естественно,но я не думаю, что это могло вызвать остановку работы сценариев)
Мои предположения:
1. или кэши объединились в одно
2. или все-таки pip instal/uninstall на локалке как-то мог сказаться
Возможно что-то есть еще, что я не вижу
Помогите, кто понимает что происходит, дабы мне больше не попадать в такую ловушку. Хотелось бы в принципе понять что дозволено объединять, а что только индивидуально ручками на сервере править.
Если есть статья на эту тему, то был бы признателен за ссылку.
байт-код двух версий приложения не стоит смешивать, отгребете
виртуальное окружение по тем же причинам нельзя обновлять на лету
5 лет назад я предложил бы переключение версий приложения на симлинках, а сейчас можно использовать для тех же целей любые контейнеры по вкусу
неплохо бы еще иметь 2 сервера, переключать по одному и следить за тем, чтобы следующий релиз не ломал одновременно работающий предыдущий, но это уже зависит от соотношения QoS к затратам