Oracle сведение схем
От: α Российская Империя  
Дата: 17.08.15 07:32
Оценка:
Есть некая эталонная база данных, с которой периодически надо накатывать изменения на остальные. Таблицы при этом не затрагиваются, т.е. синхронизации подлежат только представления, пакеты, процедуры, функции и триггера
Самый простой вариант это PLSQL Developer/Schema compare и свести схемы врукопашную. Но это не вариант.
Хочется что-то типа такого: открываем дерево схемы эталонной базы, помечаем галочками в списке объектов, что хотим выгрузить, выгружаем отмеченные объекты в файловую систему (одновременно эти же файлы можно поместить в Version Control), потом генерируем итоговый скрипт, который прогоняем на целевой базе.

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

PL/SQL Developer умеет выгружать/загружать список отмеченных объектов в некий файл формата OSF (Object Selection Filter), но там шибко неудобное GUI.

Есть ли какие-нибудь для этих целей инструменты поудобнее?
Re: Oracle сведение схем
От: wildwind Россия  
Дата: 17.08.15 08:54
Оценка:
Здравствуйте, α, Вы писали:

α> Есть ли какие-нибудь для этих целей инструменты поудобнее?


Нужно взять за правило: поменял объект в схеме — сохранил в файл и закоммитил в VCS. Список измененных объектов должен храниться тоже в VCS, например, в локальном git бранче. А не в самой схеме, которая может легко накрыться. Тогда необходимость в сравнении схем отпадает.

Для сборки финального патча написать отдельный скрипт.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[2]: Oracle сведение схем
От: α Российская Империя  
Дата: 17.08.15 09:29
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Нужно взять за правило: поменял объект в схеме — сохранил в файл и закоммитил в VCS. Список измененных объектов должен храниться тоже в VCS, например, в локальном git бранче. А не в самой схеме, которая может легко накрыться. Тогда необходимость в сравнении схем отпадает.


Это классический, но кмк не продуктивный способ разработчикам это полдня сидеть делать копипейст вместо того чтобы прямо в тестовой базе в девелопере открыть скрипт, внести правки и прогнать тесты; кроме того они забывчивые. А хотелось бы наладить прозрачную синхронизацию между текстом измененной DDL схемы и локальным репозиторием (svn-git-и т.п.). В PL/SQL developer-е также есть что-то типа проектов (бесполезная штука) и плагинов к SVN и GIT (но они также вынуждают сваливать изменения схемы в локальный файл вручную)
Re: Oracle сведение схем
От: wildwind Россия  
Дата: 17.08.15 18:16
Оценка:
Здравствуйте, α, Вы писали:

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


Перечитал еще раз и озадачился — что это за список? Разве он не ограничивается только выбранными и измененными разработчиком объектами? А они в общем случае каждый раз разные.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[3]: Oracle сведение схем
От: wildwind Россия  
Дата: 17.08.15 18:16
Оценка:
Здравствуйте, α, Вы писали:

α> Это классический, но кмк не продуктивный способ


Это поначалу так кажется. Или если ты один кодишь и поддерживаешь единственную версию в продакшене.

α> разработчикам это полдня сидеть делать копипейст


Не понял, что за копипейст на полдня?

α> вместо того чтобы прямо в тестовой базе в девелопере открыть скрипт, внести правки и прогнать тесты;


...и нажать Ctrl+S.

α> кроме того они забывчивые.


Ну полностью этого никакой автоматизацией не исправить. Можно раздать им скрипт-напоминалку "какие объекты я менял сегодня".

α> А хотелось бы наладить прозрачную синхронизацию между текстом измененной DDL схемы и локальным репозиторием (svn-git-и т.п.).


Это имело бы смысл, если бы у каждого разработчика была своя персональная схема, и в ней можно было бы делать бранчи так же легко, как в Git. А если все работают в одной базе и схеме, то постоянно будут коллизии. "Мне надо потестить X, но ты сломал пакет Y! Я пока откачу его на старую версию, OK?" Знаем, проходили. Твой код это тот, который у тебя в файле или локальном репозитории. А в дев. базе в любой момент времени может быть что угодно.

В PL/SQL developer-е также есть что-то типа проектов (бесполезная штука) и плагинов к SVN и GIT (но они также вынуждают сваливать изменения схемы в локальный файл вручную)

И правильно делают.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re: Oracle сведение схем
От: Dym On Россия  
Дата: 19.08.15 09:48
Оценка:
α>Есть ли какие-нибудь для этих целей инструменты поудобнее?
Обычно пишутся скрипты, которые выдирают DDL из словарей БД.
Счастье — это Glück!
Re: Oracle сведение схем
От: s_aa Россия  
Дата: 19.08.15 09:54
Оценка:
α>Есть ли какие-нибудь для этих целей инструменты поудобнее?

Одно время использовал Embarcadero Change Manager для MSSQL, но он и другие базы в т.ч. Oracle поддерживает.
Мне нравилось.
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.