Size: a a a

2021 September 21

KN

Konstantin Nosov in symfony
конечно, репликации стартуют при нескольких сервисах сразу, поэтому я думал какой-то глобальный флаг
источник

KN

Konstantin Nosov in symfony
верно
источник

SP

Sergey Protko in symfony
я вариант с хуками юзаю, сначала спокойно дождаться пока раскатятся миграции а потом уже накатывать приложение
источник

D

Dmitry in symfony
Ааа. Понял. Спасибо.
источник

SP

Sergey Protko in symfony
приложение на старте только проверяет что версия схемы ожидаемая (а то словили как-то индценет что хук не отработал и не зафэйлился деплой)
источник

D

Dmitry in symfony
Я миграции накатываю руками
источник

SP

Sergey Protko in symfony
мой отец накатывал руками и его отец руками накатывал
источник

D

Dmitry in symfony
Нет. Вот как раз чтобы не городить хуки и глобал локи. Просто в СИ руками запускаю миграцию один раз
источник

KN

Konstantin Nosov in symfony
для варианта с CI/CD можно сделать отдельный сервис, так и думали. Но лучше бы сделать глобал лок, его можно и самому сделать.
источник

D

Dmitry in symfony
Учитывая что у меня миграции почти всегда с промежуточными таблицами - такой подход себя оправдывает
источник

AV

Alexey Vetrov in symfony
тогда надо не упустить момент, когда код работает с новой схемой, а бд ещё альтерит какой-нибудь столбец
источник

AV

Alexey Vetrov in symfony
что собственно бред
источник

D

Dmitry in symfony
1. Схема всегда обратно совместима с текущим кодом
2. Миграции всегда двухэтапные
источник

SP

Sergey Protko in symfony
локи у тебя в пайплайне должны быть пока твой сервис не отработал. можно конечно замутить лок в табличках но там тогда вопросики возникнут веселые "а что делать если лок не высводобился"... таймауты вводить... а если оно по ошибке посчитает что все? Слишком сложная схема выходит.
источник

D

Dmitry in symfony
Так что проблемы с деплоем нет
Плюс база меняется редко - меня устраивает подход
источник

AV

Alexey Vetrov in symfony
а кто потом убирает эту "бесполезную" обратную совместимость через время?
источник

D

Dmitry in symfony
Второй этап миграции.
источник

SP

Sergey Protko in symfony
почему она бесполезная? она нужна что бы была совмесомтисть)
источник

SP

Sergey Protko in symfony
представь что тебе надо на живой базе добавить not null колонку. ты сначала "для совместимости" добавишь nullable колонку, потом там сделаешь свои дела что бы заполнить ее данными и потом сделаешь set not null
источник

SP

Sergey Protko in symfony
условно
источник