powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система управления изменениями в схеме БД
33 сообщений из 33, показаны все 2 страниц
Система управления изменениями в схеме БД
    #39660219
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь использует?
Раньше с таким не сталкивался, на корабле всегда только 1 капитан, и в проектах был всегда 1 архитектор, он контролировал схему, через него шли все согласования. А сейчас есть две команды с возможностью изменения схемы.

Git не подходит, там только файлы DDL, а нужно чтобы было управление не на уровне текста скрипта, а на уровне сущности БД, на уровне поля, если кто-то меняет его название, тип, размер, коммент, запускалась бы процедура согласования/уведомления, а заинтересованные сотрудники могли бы подписываться на изменения, чтобы получать уведомление - таблица поменялось, добавилось поле, изменилась связь между такими то таблицами и тп, а не просто DDL скрипт поменяли.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660250
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik, я не встречал. Обычно регулируется процессом:
-разделяется на 2 базы: тестовая, рабоая
-у рабочей базы отбирают права на изменение у всех сотрудников, кроме 1-2 ответственных
-они уже делают магию

В вашем случае, можно добавить - миграцию баз данных осуществлять с помощью liqubase , схемы которого которые можно уже засовывать в любой репозиторий с любыми хуками. А эти 1-2 специалиста будут что-то делать только после approved pull request`а.

Процесс примерно такой:
1) Кто-то хочет изменить схемы
2) Изменяет схему liqubase
3) Создает пул реквест на гитхабе
4) Ответственное лицо - проверяет и апрувит пул реквест
5) Ответственные специалисты получают уведомления о том, что в их ветку там заапрувили что-то - накатывают изменения.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660252
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetikа на уровне сущности БД, на уровне поля, если кто-то меняет его название, тип, размер, коммент, запускалась бы процедура согласования/уведомления, а заинтересованные сотрудники могли бы подписываться на изменения, чтобы получать уведомление - таблица поменялось, добавилось поле, изменилась связь между такими то таблицами и тп, а не просто DDL скрипт поменяли.

Готовых решений не встречал. Когда то тоже пытался отслеживать такие изменения в Oracle. Выход был-сделал триггер на схеме и отписывал изменения в отдельные таблицы.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660262
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik,

Миграции не пробовали? Миграция это и DDL и DML, в контексте обновления версии. Пока разработка идёт, каждый создаёт свои маленькие миграции, а при стабилизации версии, миграции объединяются, инспектируются, накатываются на тест и т.д. и т.п.

Пока идёт разработка -- не нужен жёсткий контроль, хотя общаться нужно всё время и согласовывать свои изменения.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660273
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttSintetik,

Миграции не пробовали? Миграция это и DDL и DML, в контексте обновления версии. Пока разработка идёт, каждый создаёт свои маленькие миграции, а при стабилизации версии, миграции объединяются, инспектируются, накатываются на тест и т.д. и т.п.

Пока идёт разработка -- не нужен жёсткий контроль, хотя общаться нужно всё время и согласовывать свои изменения.

Любые чисто технически решения на уровне БД не пройдут, это мало того что разные сервера, но еще и разные вендоры БД, хотя схемы идентичные, почти. Поэтому разные команды, и невозможность решить проблему административно.
задача минимум нужно хотя бы вовремя получать уведомления об изменениях в схеме, ДО того как их накатят
вторая задача получать уведомления о расхождениях в схемах, раз уж накатили, в идеале со скриптом различий
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660279
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetikчтобы получать уведомление - таблица поменялось, добавилось поле, изменилась связь между такими то таблицами и тп, а не просто DDL скрипт поменяли.

еще по своему опыту сделал вывод: согласовывать изменения структуры лучше до внесения изменений в саму БД. В erwin делаешь проект изменений- выкладываешь картинки (или можно экспорт в html делать с возможностью навигации) на wiki или где угодно обсуждаешь. Пришли к общему решению - вносишь изменения в БД.
Для этого желательно чтобы был один администратор схемы БД, который бы знал базу от и до.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660283
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SintetikЛюбые чисто технически решения на уровне БД не пройдут, это мало того что разные сервера, но еще и разные вендоры БД, хотя схемы идентичные, почти. Поэтому разные команды, и невозможность решить проблему административно.
задача минимум нужно хотя бы вовремя получать уведомления об изменениях в схеме, ДО того как их накатят
вторая задача получать уведомления о расхождениях в схемах, раз уж накатили, в идеале со скриптом различий

Понял, миграций у вас нет.
Просто.. кто-то как-то когда-то почему-то что-то там накатывает, потому что может

Нельзя автоматизировать бардак.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660378
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПонял, миграций у вас нет.
Просто.. кто-то как-то когда-то почему-то что-то там накатывает, потому что может
Нельзя автоматизировать бардак.
идет разработка, активная, но параллельно на двух разных базах, кто будет приводить разный синтаксис в DDL? поэтому нужно оперировать в логических сущностях
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660384
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SintetikhVosttПонял, миграций у вас нет.
Просто.. кто-то как-то когда-то почему-то что-то там накатывает, потому что может
Нельзя автоматизировать бардак.
идет разработка, активная, но параллельно на двух разных базах, кто будет приводить разный синтаксис в DDL?
поэтому нужно оперировать в логических сущностях
Разный синтаксис в DDL "приводят" обычно средства типа Erwin. Почему бы не хранить в репозитории erwin-схему?
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660393
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинРазный синтаксис в DDL "приводят" обычно средства типа Erwin. Почему бы не хранить в репозитории erwin-схему?

Если разные вендоры, то придется Erwin схему для каждого вендора хранить. В любом случае автоматически синхронизировать изменения не получится. Тем более если такой бардак, когда несколько команд разработчиков вносят изменения в базу независимо друг от друга.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660401
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik,

Не получится.

Сделайте 2 базы, по одной на команду. Каждая команда рулит своей базой, как хочет.

Если нужны какие-то данные друг от друга, вводите абстрагирующую прослойку в виде вьюх / функций, которые доступны соседу для чтения. Их интерфейс должен быть фиксирован, кто сломал, тот и чинит.

Все остальные варианты подразумевают безупречное следование орг. процессу, что на практике всегда будет выливаться в бардак, а он не автоматизируем.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660411
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiКот МатроскинРазный синтаксис в DDL "приводят" обычно средства типа Erwin. Почему бы не хранить в репозитории erwin-схему?

Если разные вендоры, то придется Erwin схему для каждого вендора хранить.

Как раз нет - Erwin вполне может, имея одну и ту же логическую модель, сформировать разные DDL для разных вендоров.
Вообще разделение на логическую и физическую модели придумано и поддерживается соответствующими тулами уже 20+ лет не просто так :)
Serguei В любом случае автоматически синхронизировать изменения не получится. Тем более если такой бардак, когда несколько команд разработчиков вносят изменения в базу независимо друг от друга.
Почему? Erwin-модель в этой схеме - точно такой же программный модуль, который точно так же лежит в source control,
точно так же checkout-ится, как все остальные, не вижу никакой специфики.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660416
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинКак раз нет - Erwin вполне может, имея одну и ту же логическую модель, сформировать разные DDL для разных вендоров.
Вообще разделение на логическую и физическую модели придумано и поддерживается соответствующими тулами уже 20+ лет не просто так :)
Теоретически да, практически нет. Типы данных разные. Для одной логической схемы ервин не позволяет сделать несколько физических. Это разные модели. Субд выбирается целиком для модели.

Кот МатроскинПочему? Erwin-модель в этой схеме - точно такой же программный модуль, который точно так же лежит в source control,
точно так же checkout-ится, как все остальные, не вижу никакой специфики.
Из вышесказанного -это две разных модели, поэтому.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660419
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiКот МатроскинКак раз нет - Erwin вполне может, имея одну и ту же логическую модель, сформировать разные DDL для разных вендоров.
Вообще разделение на логическую и физическую модели придумано и поддерживается соответствующими тулами уже 20+ лет не просто так :)
Теоретически да, практически нет. Типы данных разные. Для одной логической схемы ервин не позволяет сделать несколько физических. Это разные модели.
Даже если так (не помню, честно говоря) - можно вносить изменения строго в одну модель, а вторую получать из нее копированием с переключением вендора и перестройкой физмодели.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660435
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинДаже если так (не помню, честно говоря) - можно вносить изменения строго в одну модель, а вторую получать из нее копированием с переключением вендора и перестройкой физмодели.

Сначала попробуйте, потом совет давайте ;-)
Тип данных не всегда однозначно конвертируется. Каждый раз придется перелопачивать и руками менять типы данных у полей.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660449
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiТип данных не всегда однозначно конвертируется.
Если стоит задача поддерживать несколько вендоров по одной логической модели - не надо использовать типы данных, которые "не всегда однозначно конвертируются", that easy.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660486
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЕсли стоит задача поддерживать несколько вендоров по одной логической модели - не надо использовать типы данных, которые "не всегда однозначно конвертируются", that easy.

Отличная идея!
Как быть человеку, у которого уже есть две разных базы и вряд ли кто-то думал о соответствии типов данных?
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660493
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetikидет разработка, активная, но параллельно на двух разных базах, кто будет приводить разный синтаксис в DDL? поэтому нужно оперировать в логических сущностях

Не понимать. Если базы разные, то что вы там тогда синкаете, непонятно? Разные в каком смысле? Разные вендоры? А схемы полностью одинаковые? И что, вы прям кодите DDL разных баз и пытаетесь содержать их соответствие?

В общем, я конечно всех подробностей не знаю, но пока что выглядит это так. Мы гребём вилами, и пока не очень получается быстро плыть. Что нам делать? Весло не советовать.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660494
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинSergueiЕсли разные вендоры, то придется Erwin схему для каждого вендора хранить.

Как раз нет - Erwin вполне может, имея одну и ту же логическую модель, сформировать разные DDL для разных вендоров.

Учитывая сказанное про Erwin, советовать весло для гребли бессмысленно. Нужны какие-то особые магические насадки на вилы, чтобы оно как-то само всё стало хорошо
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660495
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiТип данных не всегда однозначно конвертируется. Каждый раз придется перелопачивать и руками менять типы данных у полей.

Тип данных это самое наименьшое зло, которое можно найти в поддержке более одного вендора. Примерно размером с комара.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660500
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiКот МатроскинЕсли стоит задача поддерживать несколько вендоров по одной логической модели - не надо использовать типы данных, которые "не всегда однозначно конвертируются", that easy.

Отличная идея!
Как быть человеку, у которого уже есть две разных базы и вряд ли кто-то думал о соответствии типов данных?

Ээ, я правильно понял вопрос - как человеку рулить изменениями разных баз из одной логической схемы, не приводя базы к этой схеме?
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660863
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинSergueiТип данных не всегда однозначно конвертируется.
Если стоит задача поддерживать несколько вендоров по одной логической модели - не надо использовать типы данных, которые "не всегда однозначно конвертируются", that easy.
типы обычные скалярные, без экзотики, именно поэтому
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660867
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiКак быть человеку, у которого уже есть две разных базы и вряд ли кто-то думал о соответствии типов данных?
думали, соответствие типов обеспечивается, т.к. базы синхронизируются внешней ETL тулзой, причем в обе стороны
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660870
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЭэ, я правильно понял вопрос - как человеку рулить изменениями разных баз из одной логической схемы, не приводя базы к этой схеме?
почти, если бы я контролировал обе базы, то проблемы бы не были, но я контролирую только одну, а во второй могут неожиданно для меня появиться/измениться/удалиться/ таблицы/поля/связи

причем я не уверен, что получится ту команду напрячь вести схему в тулзе, и сначала делать изменения в тулзе, и только потом применять их на базе, поэтому хорошо бы чтобы тулза могла регулярно опрашивать ту схему и показывать дифференс с нашей и делать рассылку. Ну и само собой инстансов больше чем 1, тест/дев/
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660876
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik
причем я не уверен, что получится ту команду напрячь вести схему в тулзе, и сначала делать изменения в тулзе, и только потом применять их на базе, поэтому хорошо бы чтобы тулза могла регулярно опрашивать ту схему и показывать дифференс с нашей и делать рассылку. Ну и само собой инстансов больше чем 1, тест/дев/

Это может делать несложный отчет, я даже сомневаюсь что внедрение полноценного data modeller'а конкретно для этого имеет смысл - но откуда Вы планируете получать причины дифференса (предзназначение новых полей, и т.п.)?
И если Вы хотите сравнивать не с продом, а с тестом/дев-ом - что Вы будете делать с "фантомами" (чтобы постестить подход, создали табличку, результаты не понравились - на следующий день убили)?
Коллеги выше Вам верно намекают - у вас в первую административная проблема. А решать административные проблемы при помощи только техсредств - достаточно бесперспективный путь.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39660896
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik хорошо бы чтобы тулза могла регулярно опрашивать ту схему и показывать дифференс с нашей и делать рассылку

Если бы один вендор СУБД был- еще можно было бы отследить изменения. Revers Engineerig+Complit Compare и все.
Но поскольку СУБД разные - практически все попадет в различия и каждый раз придется все таблицы просматривать. Короче не вариант )
Чтобы отследить такие изменения, самое простое что приходит на ум: сделать dblink и sql запросом делать сравнение объектов по системным таблицам.
Если, конечно, такое ваши СУБД поддерживают.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661441
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiЕсли, конечно, такое ваши СУБД поддерживают.
нет, это совсем разные системы, одна MPP платформа, вторая просто база
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661450
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЭто может делать несложный отчет, я даже сомневаюсь что внедрение полноценного data modeller'а конкретно для этого имеет смысл - но откуда Вы планируете получать причины дифференса (предзназначение новых полей, и т.п.)?
хотелось бы reverse, т.е. считаем истинной некую логическую схему, и узнаем насколько ей соответствуют текущие физические схемы
если не соответствуют, то в чем разница

Кот МатроскинИ если Вы хотите сравнивать не с продом, а с тестом/дев-ом - что Вы будете делать с "фантомами" (чтобы постестить подход, создали табличку, результаты не понравились - на следующий день убили)?
в 95% случаев ничего не буду делать, у меня стоит задача синхронизации баз, причем моя система мастер в плане данных на 95% и синхронизация валится, только если создадут констрейнт на таблицу которой нет на моей стороне

Кот Матроскин Коллеги выше Вам верно намекают - у вас в первую административная проблема. А решать административные проблемы при помощи только техсредств - достаточно бесперспективный путь.
я в курсе кэп, вопрос был как решить вопрос технически, административно решат, но это как обычно не быстро, быстрее запилить уведомлялку если таковая существует
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661460
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SintetikКот МатроскинЭто может делать несложный отчет, я даже сомневаюсь что внедрение полноценного data modeller'а конкретно для этого имеет смысл - но откуда Вы планируете получать причины дифференса (предзназначение новых полей, и т.п.)?
хотелось бы reverse, т.е. считаем истинной некую логическую схему, и узнаем насколько ей соответствуют текущие физические схемы
если не соответствуют, то в чем разница

Ну тоже можно - сохраняете "сбоку" в какой-то момент, условно говоря, sysobjects выбранного прода, что-то правите, если надо, и считаете это "некоей логической схемой"(tm), с ней сравниваете физические схемы в последующие моменты. Держать эту схему в актуальном состоянии можно автоматической парсилкой накатываемых в рамках релизов DDL-ей,
либо синхронизацией с физической структурой в "контрольных точках".
SintetikКот МатроскинИ если Вы хотите сравнивать не с продом, а с тестом/дев-ом - что Вы будете делать с "фантомами" (чтобы постестить подход, создали табличку, результаты не понравились - на следующий день убили)?
в 95% случаев ничего не буду делать,

Мне-то все равно что Вы будете делать :) Если Вы проблему подхода осознаете, но считаете несущественной - ok
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661461
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiRevers Engineerig+Complit Compare и все.

Ржу в голос. Резиновая кукла+Мультиварка и всё. Полностью заменяет женщину

Компараторы не решают проблему миграций, никогда не решали, и никогда не будут. Но фантазировать никто помешать не может.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661525
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Ржу в голос. Резиновая кукла+Мультиварка и всё. Полностью заменяет женщину

Компараторы не решают проблему миграций, никогда не решали, и никогда не будут. Но фантазировать никто помешать не может.

Извините, но вы так громко ржали, что я не понял что вы сказали
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39661548
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SintetikЛюбые чисто технически решения на уровне БД не пройдут, это мало того что разные сервера, но еще и разные вендоры БД, хотя схемы идентичные, почти. Поэтому разные команды, и невозможность решить проблему административно.
задача минимум нужно хотя бы вовремя получать уведомления об изменениях в схеме, ДО того как их накатят
вторая задача получать уведомления о расхождениях в схемах, раз уж накатили, в идеале со скриптом различий

Если готового ничего нет, то надо самим вести модель, а БД генерировать.
...
Рейтинг: 0 / 0
Система управления изменениями в схеме БД
    #39663447
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetik,

Такая проблема достаточно неплохо должна решаться силами метадата менеджеров.
Создается единый бизнес-глоссарий, подцепляются различные источники, на периодической основе автоматически просматривается, не изменилось ли чего в источнике, также можно посмотреть, затрагивают ли эти изменения нужные нам бизнес сущности или нет, и рассылать уведомления.

Хотел бы я сам замутить такое в продуктиве, но пока конечно же "дело нужное и важное, нам без этого никак, но сейчас есть задачи и поважнее" =)

Насчет того, что Git не подходит, не совсем согласен. DDL скрипты очень неплохо там смотрятся, также на периодической основе можно собирать их с обеих баз, дать заинтересованным ссылку на bitbucket или gitlab по каждой базе, и рассылать, если есть изменения с текущей веткой. По уровню детализации и захвата изменений у Гита хорошее апи, можно хоть питоном сгенерировать нужные сообщения в почту (в такой то базе изменилось то и то в таком то месте). Неэнтерпрайзненько, но вполне себе работает.
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система управления изменениями в схеме БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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