Как управлять миграциями в prod, если функционал выходит в разное время?
Добрый вечер.
Поделитесь, пожалуйста, советами по управлению миграциями БД, если существует бизнес требование, по которому функционал в прод может уходить в разное время, функционал между собой может быть связан, вся бизнес логика хранится в процедурах и функциях БД.
На текущий момент миграции обновляются через doctrine migration bundle
Единственное что вас спасет это:
- атомарные изменения (миграции отдельно, код по каждой фиче отдельно)
- последовательный деплой (сначала миграции, потом код и т.д.)
- избавиться от процедур и функций в бд
- ввести сервисную или даже микросервисную архитектуру, избавившись от связанности
В чем минусы использования функций и процедур? Что в таком случае использовать? Как описывать сложную логику связи таблиц? (множество join, union). Можно по подробнее по поводу микросервисной архитектуры?
Денис, это плохо масштабируется, а так же не управляется версионирование ведь они могут меняться со временем. Ну и совсем не нативное место - разработчик может долго дебажить, а узнать что все происходит в процедуре.
А что по микросервисам? Это читать - долго и вдумчиво) Что по сложную логику связей - там совсем другие подходы и другие челенджи. что-то делается сложнее, а что-то куда проще
Денис, мозг) тут не может быть однозначного ответа по тому что надо понимать что за данные, как они обрабатываются, зачем, почему, как часто ..... ну и знать текущую версию архитектуры, целевую и причины вот этого всего