Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Система контроля версий для СУБД / 25 сообщений из 28, страница 1 из 2
16.03.2016, 11:39
    #39193105
Roman777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Здравствуйте.
Может кто-нибудь организовывал систему контроля версий для СУБД формата Firebird?
Поделитись опытом.
...
Рейтинг: 0 / 0
16.03.2016, 11:56
    #39193127
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Скрипт создания БД легко хранится в любой СКВ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.03.2016, 12:11
    #39193154
Roman777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Dimitry SibiryakovСкрипт создания БД легко хранится в любой СКВ.

Это понятно, но это всё же не полноценная СКВ, вот если бы по аналогии с файловой СКВ, можно было бы, например, накатывать и откатывать изменения в хранимых процедурах, структуре таблиц и т.п. через интерфейс СКВ СУБД.
...
Рейтинг: 0 / 0
16.03.2016, 12:17
    #39193163
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Hello, Roman777!
You wrote on 16 марта 2016 г. 12:16:56:

Roman777> Это понятно, но это всё же не полноценная СКВ, вот если бы по аналогии с файловой СКВ,
> можно было бы, например, накатывать и откатывать изменения в хранимых процедурах, структуре таблиц и т.п.
> через интерфейс СКВ СУБД.используй IBExpert
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.03.2016, 12:31
    #39193175
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Roman777по аналогии с файловой СКВ, можно было бы, например, накатывать и откатывать изменения в хранимых процедурах, структуре таблиц и т.п. через интерфейс СКВ СУБД.
че-то я тут не вижу никакой аналогии с файловой СКВ. Процедуры и таблицы - не файлы. У таблиц и процедур могут быть взаимные зависимости, поэтому цельным для БД все же является полный скрипт (в пределах схемы).
Если уж проводить параллель, то например, с исходником на Delphi.
Допустим есть pas-файл с процедурами, функциями и структурами. Для анализа изменений все равно нужно сравнение двух текстовых файлов, целиком. Если сравнивать их кусками, то эти куски надо как-то формировать. В этом случае, конечно, СКВ сможет сравнить изменения объекта А по маркеру этого объекта А. Но в тексте pas никаких таких спец-маркеров нет.
Собственно, если СКВ для Дельфи выдает изменения по объектам, то СКВ для СУБД может делать это точно таким же образом - для этого она должна знать синтаксис СУБД.

А вот есть-ли такие СКВ (со знанием ФБ) - я не знаю. Знаю, что инструменты для моделирования такое умеют. Например Embarcadero ER/Studio.
...
Рейтинг: 0 / 0
16.03.2016, 13:34
    #39193236
Система контроля версий для СУБД
Roman777,

Это называется "миграции", гугли про них
...
Рейтинг: 0 / 0
16.03.2016, 14:13
    #39193274
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
классическое чтиво а тему - http://blog.codinghorror.com/get-your-database-under-version-control/
...
Рейтинг: 0 / 0
16.03.2016, 14:16
    #39193280
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
несколько раз встречал советы смотреть в сторону http://www.liquibase.org/databases.html

но лично я так и не добрался
...
Рейтинг: 0 / 0
16.03.2016, 14:18
    #39193281
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
мимопроходилтреднечитал,

не совсем, миграции - это скорее с Оракла на ДБ2 или хотя бы с FB 1.5 на FB 3.0
...
Рейтинг: 0 / 0
16.03.2016, 14:20
    #39193284
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
что-то типа https://en.wikipedia.org/wiki/Flyway_(software) (fb not suppported)

кстати, одиин их аргументов за ООП - создание новой БД может быть автоматическим, и таким образов СКВ основного кода еще неявно хранит БД
...
Рейтинг: 0 / 0
16.03.2016, 14:25
    #39193296
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Hello, Arioch!
You wrote on 16 марта 2016 г. 14:24:58:

Arioch> кстати, одиин их аргументов за ООП - создание новой БД может быть автоматическим
с этим в секту почитателей точконэта
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.03.2016, 14:27
    #39193302
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Arioch,

"одиин их аргументов за ООП" куда? для ИБ (не было еще ФБ) я "промышленно" использовал svn (не помню, какую) последний раз в конце 90х. И без проблем там же хранил и БД и exe, вместе со скриптом. Потому что для показа системы надо было выколупывать сразу готовый exe с базой, а не какие-то исходники компилировать.
СКВ, по-моему, все равно, чего хранить.
...
Рейтинг: 0 / 0
16.03.2016, 14:39
    #39193323
Система контроля версий для СУБД
Arioch,

а в оракле и дб2 — костыли для страдальцев, которые решили, что за деньги им будет хорошо
...
Рейтинг: 0 / 0
16.03.2016, 15:27
    #39193406
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Мы просто для того, "чтобыбыло" svn для метаданных пользуем.
Версируем от релиза к релизу. Исторически прикольно посмотреть отличия в версиях.
Но практически смысла никакого.
...
Рейтинг: 0 / 0
16.03.2016, 16:12
    #39193474
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
o_v_a,

если глюк появился в какой-нибудь SP/триггере то можно разобраться когда, кто и чем испортил.

как и с процедурами в основной программе
...
Рейтинг: 0 / 0
16.03.2016, 16:29
    #39193504
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
kdv,

Блобы-то хранить конечно можно, даже не-текстовые DFM

вот только искать изменения трудно в них.

классический пример, кстати, TImage в DFM - открыл форму, закрыл - уже изменение, счетчик там какой-то тикает в бинарных данных

а так бы хорошо бы, чтобы без лишних движений, СКВ залезала в отладочную БД, извлекала метаданные (генераторы - с default value), извлекала справочники - и сформировав скрипт создания БД его бы сравнивала/сохраняла :-)

Ведь в общем-то эта хотелка связана именно с этим, чтобы не руками (нудно и риск забыть) формроваьт скрипты создания/обновления
...
Рейтинг: 0 / 0
16.03.2016, 16:30
    #39193505
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Ariochесли глюк появился в какой-нибудь SP/триггере то можно разобраться когда, кто и чем испортил.
если совсем пафосно, то
- модель строится в er/stuio (или типа того).
- модель разбивается на части, на которые выдаются права
- сотрудники модифицируют модель, все это ходит туда-сюда в version control.
- результирующая модель извлекается ДБА, и он дальше с ней что-то делает. или, применяет накопленные пакеты изменений.

если более практично, и близко к нашей реальности, то все равно, даже если 5-7 разработчиков, изменения должны сначала попадать в vcs, и только потом уже в базу.
Организация прямого редактирования объектов в базе группой разработчиков порочна, и ранее не была возможна из-за отсутствия прав доступа к метаданным.
Сейчас, в ФБ 3, эти права есть. И мне весьма интересно, сделает такую "модель" кто-нибудь, или она все равно провальная для мелких групп и мелких контор. Правда, для полного счастья такой модели в фб 3.0 нет версионирования ddl изменяемых объектов.
Интересно, а плагин такой наверное ведь можно написать?
...
Рейтинг: 0 / 0
16.03.2016, 16:35
    #39193509
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Ariochkdv,

Блобы-то хранить конечно можно, даже не-текстовые DFM

вот только искать изменения трудно в них.

классический пример, кстати, TImage в DFM - открыл форму, закрыл - уже изменение, счетчик там какой-то тикает в бинарных данных

а так бы хорошо бы, чтобы без лишних движений, СКВ залезала в отладочную БД, извлекала метаданные (генераторы - с default value), извлекала справочники - и сформировав скрипт создания БД его бы сравнивала/сохраняла :-)

Ведь в общем-то эта хотелка связана именно с этим, чтобы не руками (нудно и риск забыть) формроваьт скрипты создания/обновлениясмешались в кучу кони-люди... ДФМ-ки вполне себе текстовые, да с картинками хрень, конечно, но терпимая. ДФМки вполне сее живут под версионником, я даже мержил их несколько раз,да удовольствие это ниже среднего, но тем не менее. Если тебе надо кроме скрипта хранить еще что-то ну напиши SQL скрипт, который все что нужно извлечет и сложит в текстовик (текстовики), а уже текстовый файл можно хранить под любой VCS. Я вот лично предпочитаю меркуриал. Зачем версионнику поручать извлечение метаданных и части данных БД куда-то для меня загадка. Ты программист или где?
...
Рейтинг: 0 / 0
16.03.2016, 16:39
    #39193514
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Ariochчтобы не руками (нудно и риск забыть) формроваьт скрипты создания/обновления
все это, в общем, риторика. потому что
1 для объектов все-таки должны быть "раздадены" права редактирования (уже есть возможность)
2 где-то должен работать checkin/checkout. Иначе все 5 человек полезут без проблем редактить одну процедуру - одновременно в ISQL, IBE, и еще где-нибудь.
3 кто-то должен формировать ддл измененных объектов, и запихивать их в vcs (про плагин я уже сказал)

из пунктов 1-3 мутным остается только пункт 2. и, как бы, в данный момент я не вижу другого радикального способа, кроме как внедрение его в СУБД. А значит - Firebird 5.0? :-) и то с сомнительной вероятностью использования. Не любят люди "административный геморрой".

p.s. подозреваю, что п.3 можно "хоть щас" написать, и сделать это может кто угодно.
...
Рейтинг: 0 / 0
16.03.2016, 16:58
    #39193538
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
kdv,

3 пункт можно реализовать если сравнивать скрипты БД в IBE. А получать полные версии скриптов можно из любой системы контроля версий. Вполне возможно что у этой возможности есть консольный вариант (не проверял). Если так то процесс можно автоматизировать.
...
Рейтинг: 0 / 0
16.03.2016, 17:36
    #39193608
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Ivan_Pisarevsky,

DFM - *опционально* текстовые
Потому я и уточнил
...
Рейтинг: 0 / 0
16.03.2016, 17:48
    #39193632
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
kdv
из пунктов 1-3 мутным остается только пункт 2. и, как бы, в данный момент я не вижу другого радикального способа, кроме как внедрение его в СУБД. А значит - Firebird 5.0? :-) и то с сомнительной вероятностью использования. .

checkin/checkout - Это уже блокировочник, точно не будет в FB

тут нужен ещё один шаг - разделение объектов (включая и метаданные и данные) на нужные и не-нужные (созданные для отладки), видимо в режиме обучения, с запросами для новых ранее не виденных объектов

Симонов Денисесли сравнивать скрипты БД в IBE

только IBE то ли слишком умный, то ли недостаточно умный, например он не полностью восстанавливает DDL для вычисляемых столбцов с явно заданным типом

Ivan_Pisarevsky ну напиши SQL скрипт, который все что нужно извлечет и сложит в текстовик (текстовики), а уже текстовый файл можно хранить под любой VCS. Я вот лично предпочитаю меркуриал. Зачем версионнику поручать извлечение метаданных и части данных БД куда-то для меня загадка. Ты программист или где?

А зачем тебе тогда вообще меркуриал? напиши bat-скрипт, который по списку будет зиповать файлы в архив с временем в названии. Программист или где?
...
Рейтинг: 0 / 0
16.03.2016, 20:18
    #39193790
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Ariochтолько IBE то ли слишком умный, то ли недостаточно умный, например он не полностью восстанавливает DDL для вычисляемых столбцов с явно заданным типомХвастунов достаточно оперативно чинит нормально заявленные баги. потроллить решил?
AriochА зачем тебе тогда вообще меркуриал?зело удобен. отследить историю изменений текстового файла очень просто. зипованные архивы относительно vcs каменный век. смысл идти обратно в пещеры?
...
Рейтинг: 0 / 0
17.03.2016, 10:45
    #39194132
Roman777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
kdvArioch,

"одиин их аргументов за ООП" куда? для ИБ (не было еще ФБ) я "промышленно" использовал svn (не помню, какую) последний раз в конце 90х. И без проблем там же хранил и БД и exe, вместе со скриптом. Потому что для показа системы надо было выколупывать сразу готовый exe с базой, а не какие-то исходники компилировать.
СКВ, по-моему, все равно, чего хранить.

Что дает использование файловой СКВ для файла базы?
Посмотрел Liquibase, но что-то витиевато с его XML-«чейнджсетами» (changeset — набор изменений), которые нужно редактировать 'ручками', что потенциально может привести к ошибкам.

Т.к. требуется СКВ СУБД для 1 разработчика, пока остановился на варианте генерации скрипта базы через IBExpert (ibeblock) и подсовывание в файловую СКВ, конечно откат возможен только 'ручками', но хоть что-то.

Может всё же кто-то предложит ещё варианты СКВ СУБД (FB), помимо Liquibase.
...
Рейтинг: 0 / 0
17.03.2016, 10:49
    #39194136
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система контроля версий для СУБД
Roman777
Может всё же кто-то предложит ещё варианты СКВ СУБД (FB), помимо Liquibase.

Здесь обсуждали. У нас - по четвертому варианту, скрипты хранятся в git.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Система контроля версий для СУБД / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]