Pull to refresh

Comments 7

Вот только не понятно как деплоить бд в прод — на выходе у нас уже собранный артефакт без всяких gradle скриптов.
Тут есть несколько вариантов.
А как у вас сейчас это делается?
Я для наведения порядка в базе использовал: dbmaintain library
Она очень хорошо подходит для крупных проектов с множеством баз данных, условиями выполнения и т.д.

Мне не хватало для счастья preprocessing phase, поэтому форкнул проект и дописал. Можно взять тут, ветка «preprocessing».

Остался доволен, надеюсь кому-нибудь пригодится.
ПС. Такие вещи удобно встраивать в приложение. Оно становится более самостоятельным и легче автоматизируется
Иногда удобно, а иногда неудобно или невозможно.
Например, есть компании, где базу и приложения администрируют разные админы, и они ни в какую не соглашаются меняться ролями. Также есть базы, в которых живут своей жизнью отдельные приложения (составленные из Pl/Sql, job и триггеров). И надо их ставить независимо от приложения.

А когда база служит толко приложению и меняется вместе с ним — тогда действительно удобно запускать обновления базы прямо из приложения при старте.
Администрировать базу — это одно, а обновить базу до состояния, которое необходимо приложению — это другое.
Почти каждый раз, когда выходит билд по приложению в readme.txt можно увидеть «выполните вот эту пачку скриптов».
Туда входят и вставка/удаление данных, тригера, процедуры, пакеты, вьюхи и т.д.
Когда это не автоматизировано, постановка нового билда может превратится в ад на 8 и более часов.
Какие скрипты нужно выполнить? Какие не нужно? Какая версия приложения? Какой билд по базе к нему подойдёт?

Вещи намного упрощаются, когда app сам себя трекает. Админу только лишь нужно проследить, что миграция базы прошла без ошибок.
Это вы описываете, зачем вообще нужен DBDeploy и другие подобные тулы.
Но для этого совсем не обязательно запускать скрипт из-под приложения. Можно и отдельно.
Sign up to leave a comment.

Articles

Change theme settings