Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Как известно - лень - двигатель прогресса.

Назрел вопрос - полностью автоматической генерации DDL патчей при сравнении двух схем (продукционной и девелоперской), в целях последующего деплоя (при условии отсуствия администраторов на местах).

Тема не нова, и в настоящее время решается разными путями: от изначально ручного кодирования скриптов "в процессе", до предварительной генерации скриптов посредством PL/SQL Developer или TOAD, с последующей просмотром и правкой (и утомительными циклами верификации).

Но.. PLSQLDev и TOAD - не отличаются особой интеллектуальностью в данном вопросе (проблемы с ALTER TABLE ADD column ... NOT NULL, CREATE VIEW + INSTEAD OF триггер и т.д.), и, что особенно неприятно - требуют ручной правки и просмотра скриптов, оставаясь при этом - "закрытыми" инструментами - без возможности доработки под "местные" условия.

Потому и возник вопрос - есть ли какие либо иные, общеизвестные, и крайне желательно, Open Source инструменты, ориентированные на командную строку или на PL/SQL (т.е. - без GUI).

И желательно - не такие монстрообразные, как Oracle SCM или Migration Workbench ?

--

В принципе - задача, вполне решаема и самостоятельно, просто не сильно хочется изобретать очередной велосипед.

Правда, глядя по сторонам (на конкурентов), можно заметить, что большинство фирм ведут патчи "вручную", и очень редко - поддерживают какой собственный подобный инструмент, что в целом, не может не удивлять... задача то - типовая...
16 ноя 06, 01:52    [3406813]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
BW
Member

Откуда:
Сообщений: 727
Проблема похожая. Удалось что-нибудь раскопать на эту тему?

С уважением,
bw.
20 авг 07, 13:03    [4546850]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
Попробуйте Oracle Designer. Продукт полумертвый, но автоматизированный deployment был одним из его ключевых особенностей.
20 авг 07, 13:24    [4547004]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
BW
Member

Откуда:
Сообщений: 727
andrey_anonymous
Попробуйте Oracle Designer. Продукт полумертвый, но автоматизированный deployment был одним из его ключевых особенностей.


Да, планирую это сделать. Но есть несколько вопросов административного плана, которые требуют прояснения:
1. Можно его еще купить?
2. И сколько стоит?

И не хочется вкладываться в полумертвые продукты.

С уважением,
bw.
20 авг 07, 13:57    [4547291]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
BW
1. Можно его еще купить?
2. И сколько стоит?

Без понятия по обоим пунктам, обратитесь в oracle :)
Я его вспомнил на ту тему, что был в нем соответствующий engine.
Надо понимать, что продукт стареет и может не отрабатывать нововведения.
Однако можно на него посмотреть, оценить и попробовать найти/создать аналог в части deployment.
20 авг 07, 15:36    [4548344]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
BW
Member

Откуда:
Сообщений: 727
andrey_anonymous
Без понятия по обоим пунктам, обратитесь в oracle :)


В Оракл СНГ буду обращаться только в исключительных случаях, после того как менеджер сказал, что Оракл НИКОГДА не продавал и не продает в России ограниченные по времени лицензии, в то время как я покупал такие.

andrey_anonymous
Однако можно на него посмотреть, оценить и попробовать найти/создать аналог в части deployment.


Стратегия именно такая ;-)

С уважением,
bw.
20 авг 07, 15:42    [4548403]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
BW
..
Стратегия именно такая ;-)

имхо, тут нужен именно велосипед, учитывающий специфический
характер обслуживаемых ддл-ей (т.е. то узкое их подмножество, которое относительно безопасно для продуктивных данных :)
Для общего же случая, имхо, годится только анализ расхождений, для последующей ручного латания
20 авг 07, 15:53    [4548506]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
BW
Member

Откуда:
Сообщений: 727
orawish
BW
..
Стратегия именно такая ;-)

имхо, тут нужен именно велосипед, учитывающий специфический
характер обслуживаемых ддл-ей (т.е. то узкое их подмножество, которое относительно безопасно для продуктивных данных :)


ИМХО, такое подмножество пусто. :-)
Хотелось начать быстро, а начинать постройку собственного велосипеда.

orawish

Для общего же случая, имхо, годится только анализ расхождений, для последующей ручного латания

Вот чего хочется избежать, так это трудно воспроизводимого "ручного латания" в силу присутствующего "человеческого фактора". Лучше двойной, тройной контроль после автоматической генерации патча.

С уважением,
bw.
20 авг 07, 16:15    [4548742]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
BW
orawish
BW
..
Стратегия именно такая ;-)

имхо, тут нужен именно велосипед, учитывающий специфический
характер обслуживаемых ддл-ей (т.е. то узкое их подмножество, которое относительно безопасно для продуктивных данных :)


ИМХО, такое подмножество пусто. :-)
..

А вот и нет. В нем.
comment on table/column

А если серьезно - (мне) не очень страшно было бы отдать автомату делать
1) null, где был not null,
2) изменение длины текстовых атрибутов и точности чисел в большую сторону
3) добавление null (или с непустым дефолтом) колонок в таблицы
4) добавление атрибутов в первичные/уникальные ключи
5) изменение свойств конструкций (каскадность, отложенность и т.д.)
6) свойства последовательностей (почти все)
7) всё, что касается неуникальных индексов, вью, матвью, синонимов, ролей, прав на объекты и роли
8) весь pl/sql (при условии, что структуры данных к этому моменту уже синхронны)
20 авг 07, 17:50    [4549736]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
BW
Member

Откуда:
Сообщений: 727
orawish
BW
orawish
BW
..
Стратегия именно такая ;-)

имхо, тут нужен именно велосипед, учитывающий специфический
характер обслуживаемых ддл-ей (т.е. то узкое их подмножество, которое относительно безопасно для продуктивных данных :)


ИМХО, такое подмножество пусто. :-)
..

А вот и нет. В нем.
comment on table/column

А если серьезно - (мне) не очень страшно было бы отдать автомату делать
1) null, где был not null,
2) изменение длины текстовых атрибутов и точности чисел в большую сторону
3) добавление null (или с непустым дефолтом) колонок в таблицы
4) добавление атрибутов в первичные/уникальные ключи
5) изменение свойств конструкций (каскадность, отложенность и т.д.)
6) свойства последовательностей (почти все)
7) всё, что касается неуникальных индексов, вью, матвью, синонимов, ролей, прав на объекты и роли
8) весь pl/sql (при условии, что структуры данных к этому моменту уже синхронны)


Очень смело....

С уважением,
bw.
21 авг 07, 01:20    [4550923]     Ответить | Цитировать Сообщить модератору
 PowerDesigner  [new]
Sergei.Agalakov
Member

Откуда:
Сообщений: 575
Прямо скажем, не командная строка и не бесплатно, но сравнивать две версии схемы и генерить миграционный скрипт он умеет. Глазками, правда, этот скрипт все равно стоит просмотреть.
21 авг 07, 02:37    [4550950]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
JURIJ_K
Member

Откуда:
Сообщений: 58
Посмотрите Oracle Change Management Pack в составе ОЕМ.
http://www.oracle.com/global/ru/ip/10g/enterprise/dcmp.html
Хотя ОЕМ монстр еще тот, и "утилиты командной строки" слабо с ним коррелируют, при определенных обстоятельствах - очень полезная вещь.

Oracle Database Change Management Pack (CMP) облегчает работы, связанные с изменением структуры БД и хранящихся в ней объектов, а также тиражирование изменений из базы разработчика в эксплуатационные базы. Фактически CMP позволяет администратору делать изменения в экспериментальной БД и, после того, как они будут признаны успешными, распространить их на эксплуатационные базы данных. Главным достоинством пакета является то, что, прежде чем делать изменения, он проводит сложный анализ зависимостей. В результате, администратор всегда знает последствия своих действий по изменению БД и может быть уверен в качестве и согласованности выполнения этих изменений.

CMP реализует следующую методологию модификации БД: определяется текущее состояние БД и ее структур, это состояние сравнивается с предыдущим состоянием, выявляются различия и на основе их формируется план внесения изменений в другие БД. Далее проводится анализ влияния и допустимости таких изменений, строится отчет и скрипты для выполнения изменений. После чего можно запустить эти скрипты на выполнение... и.т.д.
+ полезная фича: сравнение параметров хостов и наборов их приложений (пакетов) между собой.
+ еще много чего.
21 авг 07, 12:19    [4552588]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
JURIJ_K
Member

Откуда:
Сообщений: 58
PS.
(+ полезная фича: сравнение параметров хостов и наборов их приложений (пакетов) между собой.
+ еще много чего полезного.) -> относится к OEM GC.
21 авг 07, 12:26    [4552645]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Arzumanyan Karen Raphaelovich
Member

Откуда:
Сообщений: 195
Приветсвую уважаемые...
Уже давно бьюсь над этой проблемой... не нашёл ли кто-нибудь решения, желательно конечно бесплатного?

_____________________________
Жизнь это игра, для которой нет tutorial'а
11 мар 09, 14:52    [6911364]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Lord British
Member

Откуда: На Камчатке красиво?
Сообщений: 758
Тоже делаем руками.

По моему работы гораздо меньше.

Нет доверия к этой автоматике - поди разберись что оно там наваяло. Да и в лом.
12 мар 09, 20:41    [6919559]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Alterling
Member

Откуда:
Сообщений: 180
В нашей команде утилита собственной разработки, пункты 1-8 умеет + еще немного. В базе табличка с номерами версии базы и клиентских приложений. Утилитка считывает описания объектов базы и формирует описание схемы. После чего строит разностный скрипт от произвольной выбранной версии до текущей.
Как я выяснил, многие команды в нашей фирме озаботились написанием подобных утилит. Так вот, сравнивая с теми, кто делает у нас на фирме все вручную, сделал наблюдение: скорость и качество автоматизированной сборки скриптов на порядок выше ручной. А возможность в любой момент времени определить отличии продакта от девелоперской базы - вообще неоценимая вещь.

Разумеется, полной автоматизации добиться не получится, т.к. вещи вроде "ALTER TABLE ADD column ... NOT NULL" - это только ручные правки, но такого, как правило, немного. Плюс, все разностные скрипты с версии на версию храним в соурсконтроле, так что особой проблемы ручные правки не составляют.
13 мар 09, 13:19    [6922596]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
EugeneS
Member

Откуда:
Сообщений: 1255
Martin Fowler:Evolutionary Database Design
13 мар 09, 15:42    [6924234]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
полухохол
Member [заблокирован]

Откуда:
Сообщений: 448
Для того чтобы автоматически генерить патчи на схему нужно просто установить несколько правил и за их невыполнение применять очень жесткие административные меры.
Правила несложные.
Как пример, новые колонки в существующие таблицы можно добавлять только в конец. Типы созданные CREATE TYPE использовать в определении колонки нельзя. Нарветесь еще на что нибудь, добавите сами. А дальше TOAD, Power Architect или что нить подобное, или сами прогу напишите, я например на .NET написал за неделю.
13 мар 09, 16:28    [6924692]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Elic
Member

Откуда:
Сообщений: 29979
полухохол
новые колонки в существующие таблицы можно добавлять только в конец.
Предположим, я хочу нарушить такое простое правило. Как образом?
13 мар 09, 16:36    [6924766]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
полухохол
Member [заблокирован]

Откуда:
Сообщений: 448
Закоммитить в репозиторий sql где колонки добавлены в середину таблицы. Потом написать кучу кода. И потом попытаться сделать патч.

Ты чего, не разработчик, что-ли?
13 мар 09, 17:28    [6925176]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Elic
Member

Откуда:
Сообщений: 29979
полухохол
Закоммитить в репозиторий sql где колонки добавлены в середину таблицы.
Повторяю для ...: столбец в существующую таблицу добавить не в конец нельзя.
13 мар 09, 17:47    [6925295]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
полухохол
Member [заблокирован]

Откуда:
Сообщений: 448
Мда. Для ... обьясняю. Вот есть сервер разработки и тестовый сервер. И вот есть скрипт CREATE TABLE. Я там колонки могу натыкать в любом порядке. И в таком виде таблица будет создана и на сервере разработке и на тестовом сервере.
Потом настало время выпустить патч. И выясняется что патч писать надо ручками. Ибо колонки добавлены не в конец, а в середину.

Так понятно?
13 мар 09, 17:55    [6925341]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Elic
Member

Откуда:
Сообщений: 29979
полухохол
И вот есть скрипт CREATE TABLE. Я там колонки могу натыкать в любом порядке.
Твой полухохольский понятен, похоже, только тебе :)
Таблица уже существует (с твоих же слов). Ты можешь что и куда угодно "тыкать" в этот "скрипт CREATE TABLE", но в одну реку нельзя войти дважды



P.S. Надо просто сразу вдумчиво писать инкрементальные скрипты
13 мар 09, 18:07    [6925439]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
полухохол
Member [заблокирован]

Откуда:
Сообщений: 448
Все это дерьмо типа инкрементальных скриптов и прочего я уже в 3 конторе извожу под корень. У нас автоматически собираются и тестируются все билды и патчи. А также инсталяционные скрипты, инсталляторы и много чего еще.
13 мар 09, 18:13    [6925472]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая генерация скриптов-патчей (утилиты командной строки)  [new]
Elic
Member

Откуда:
Сообщений: 29979
полухохол
Все это дерьмо типа инкрементальных скриптов и прочего я уже в 3 конторе извожу под корень. У нас автоматически собираются и тестируются все билды и патчи. А также инсталяционные скрипты, инсталляторы и много чего еще.
Поржал. Есть ещё где-то вера в чудеса
13 мар 09, 18:20    [6925526]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить