Size: a a a

Django [ru] #STAY HOME

2021 May 13

DT

Dan Tyan in Django [ru] #STAY HOME
/devices/1337 такой урл будет
источник

DT

Dan Tyan in Django [ru] #STAY HOME
в правиле не хватает слеша перед знаком $
источник

1

1N54N3 in Django [ru] #STAY HOME
А как жить без квери парамсов?
/devices?ip=1337&a=2&b=3&c=4
Строить if-else блоки в самой функции которая обрабатывает запрос?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
да пожалуйста используй сколько хочешь =)
только url на них не завяжешь
источник

1

1N54N3 in Django [ru] #STAY HOME
Ок, а как же примеры из доки ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
artcicles/2020/12/slug/
источник

1

1N54N3 in Django [ru] #STAY HOME
Ой, слеш не увидел
источник

1

1N54N3 in Django [ru] #STAY HOME
Понял спасибо
источник

DT

Dan Tyan in Django [ru] #STAY HOME
artcicles/2020/
artcicles/2020/12/
artcicles/2020/12/slug/
источник

AD

Alex Dem in Django [ru] #STAY HOME
ты хочешь поднимать разные версии проекта на одной базе без полной потери данных?

Миграция предполагают откат обратно
Например, для приложения someapp последняя миграция - под индексом 0010

manage.py migrate someapp 0009
и вот ты откатился

при условии, что кастом миграции написаны правильно, миграции предполагают откат без последствий

Можно до переключения версии проекта откатиться, а потом уже переключить версию;
Чтобы упростить регистр версия проекта->список необходимых миграций, я бы, наверное, расширил табличку django-migrations и писал бы туда еще версию релиза,
тогда можно будет понять куда надо откатиться для той или иной версии проекта
вероятно, чтобы это работало хорошо, стоит писать тесты на успешный реверс миграций

(всё описанное выше - какая-то лютая дичь, но как лучше решить такую задачу - я не придумал)

Но в общем-то, гемморно это все и фишка докера в автономности и атомарности - есть система, не отчего-либо извне не зависит, надо - собрал, запустил
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
Я думаю нужно делать БД таким образом, чтобы не было удалений столбца и переименовывания. Тогда предыдущая версия будет работать спокойно. Если что-то нужно - добавь и при следующем деплое удали уже не нужную строку.
источник

AD

Alex Dem in Django [ru] #STAY HOME
а если у тебя в новом стоблце стоит not null?
источник

AD

Alex Dem in Django [ru] #STAY HOME
(о более сложных кейсах я молчу)
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
Ну, кодер я или нет? То есть это все можно предусмотреть.
источник

AD

Alex Dem in Django [ru] #STAY HOME
как ты такое предусмотришь в разрезе твоего решения? :)
новое поле not null, в моделе прошлой версии его нет. ты пытаешься сделать save() и получаешь ошибку от БД
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
Ну, сейва не будет. В момент апгрейда будет только чтение данных. Или можно средствами базы сделать дефолное значение
источник

AD

Alex Dem in Django [ru] #STAY HOME
с моим решение, мягко говоря, не все хорошо, но это решение принесет еще больше боли;
но спорить не буду, дело хозяйское :)
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
Я вообще решил, что если бэк отвечает 50х кодом, то насильно в нгинсе отвечать 200
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
Просто джанга будет обрабатывать запросы от радиуса, и у него такой механизм. Если код не 200, то нужно выкинуть юзера
источник

MT

Monsieur Taishín in Django [ru] #STAY HOME
И получается в момент деплоя идёт реконнект
источник