Как контролировать хранимые процедуры и тригеры через VCS?
Добрый день.
Есть приложение, вся работа которого завязана на базе данных. Обсчет, анализ, агрегирование данных. Логика довольно сложная. В качестве бд используется postgresql 9.4
Стоит задача перенести часть логики в саму базу в качестве тригеров и хранимых процедур.
Только я не могу понять, как контролировать их изменения через VCS? Логика меняется очень часто и для каждого изменениея городить миграцию не вариант. Кто работает с ними, подскажите, как контролироть изменения в коде процедур? Как автоматизировать их обновление?
То, что вы ищите называется миграции.
Обычно описываются двумя методами: up / down.
up - выполняет изменение до более новой версии БД, down - отменяет эти обновления.
Цитата из вопроса: >>Логика меняется очень часто и для каждого изменениея городить миграцию не вариант.<<
Я знаю, что такое миграция и конечно же использую их. Но для изменения схемы бд. А если для каждого изменения процедуры буду городить миграцию, у меня будут тысячи файлов храниться.
Я считаю, что код процедур - это такой же код приложения и история должна храниться в VCS. Но вот как это удобно организовать не знаю.
Можете попробовать такую штуку написать:
1. Делать дамп процедур.
2. Под VCS хранить текущее состояние.
3. При выполнении миграции - находить разницу между текущим состоянием и тем, что в VCS, если есть обновления - измененные пересоздавать