Подход к изготовления дистрибутивов/обновлений базы данных

Всем Добрый День!

1. В Installed версия продукта, пользователь сам ставит PostgreSql на своем сервере и сам обновляет базу данных из присылаемых нами скриптов (всего у нас: 680 - хранимых процедур + 90 - таблиц + тригеров тоже есть)

В процессе работы:
- итерируем хранимые процедуры (proc_00...proc_XX), когда они начитают использовать новые входные или выходные данные
- пишем вручную N скриптов по постепенному изменению схемы БД (редактор использовать нельзя...)

Отправка обновления пользователям:
- объединяем в один скрипт: все скрипты (в ручную) по изменению БД с результатом экспорта всех текущих хранимых процедур
- увеличиваем номер билда базы (он сравнивается с номером на стороне клиентских приложений)

Больше всего трудностей вызывают - "ручные" скрипты!
Есть ли какие то методы или программные разработки, чтобы эти изменения могли удобно проверяться / складироваться / объединяться ?
Или может быть есть способы вычислять автоматически разницу в БД схемах, то есть делать автоматические билды БД?

Если можно посоветуйте пожалуйста работающий и проверенный вами подход :)

2. Знаете ли вы софт (желательно мульти-платформенный) в котором есть автоматическая установка дистрибутива PostgreSql и последующим автоматическим обновлением БД (+ бекапом) ? Или даже не нужно стараться идти к такой автоматизации, а написать хорошею документацию ?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Есть ли какие то методы или

Есть ли какие то методы или программные разработки, чтобы эти изменения могли удобно проверяться / складироваться / объединяться ?
Любая система контроля версий, например subversion (svn)
Дамп БД позволяет выгружать только схему БД без данных. Вы можете прогружать эту схему в svn и в итоге получать любую дельту между версиями, а также любую версию.

Знаете ли вы софт (желательно мульти-платформенный) в котором есть автоматическая установка дистрибутива PostgreSql и последующим автоматическим обновлением БД (+ бекапом) ? Или даже не нужно стараться идти к такой автоматизации, а написать хорошею документацию ?
Вообще-то практически все разрабочики строят свою работу вокруг определённой платформы. Т.е. Windows - значит Windows, Linux - значит определённый дистрибутив. В Linux, например, задачи автоматической установки PostgreSQL решаются простым shell-скриптом, который пишется за одну минуту.
Бакап выполняется стандартными утилитами PostgreSQL на любой платформе - какой смысл изобретать велосипед?

К автоматизации идти надо. Но если одна из задач автоматизации - это уменьшение ручных операций и затрат времени, то другая задача - это обеспечение НАДЁЖНОСТИ всего процесса и она всё-таки имеет приоритетное значение. Таким образом, вам нужно найти 1-е, но без ущерба для 2-го.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023