powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5 - синхронизация с версионником.
2 сообщений из 2, страница 1 из 1
ASE 12.5 - синхронизация с версионником.
    #36283868
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, всем доброе время суток.
На работе встала реальная задача навести порядок с версионником.

Просто сравнивать объекты в БД и скрипты из версионника на основе тэгов проставляемых этим самым версионником нельзя, т.к. бывает, что DML выгружают прямо из БД и потом его правят и ставят обратно. Номер версии остаётся неизменным, но объект уже другой. В общем-то, эти случаи и надо отловить.

Остаётся только выгрузить DML объекта и сравнить его со скриптом в версионнике.

Возникает вопрос, как лучше сравнивать, т.к. тексты могут быть совершенно неидентичные из-за пробелов и возвратов каретки (например sp_helptext - часто грешит тем, что произвольно разбивает строку)


Я подумал на таким решением - выгрузить DML из базы. Оставить только тело - убрав разные проверки типа if object_id(...) is not null итп, и тоже убрать разные опции которые могут следовать за созданием объекта.
Т.е. по сути оставить только то, что находится между create и go.

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

Проделать аналогичную очистку скрипта из версионника и потом обе строки сравнить.

Довольно несложно сделать скрипт (например на Перле), которые бы выполнял подобное сравнение проходя в цикле по sysobjects.

Насколько такой вариант может быть рабочим? Какие здесь могут быть неувязки? Что при таком подходе, может остаться незамеченным.

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

Если у кого есть опыт решения подобных задач, большая просьба откликнуться.

Заранее огромное спасибо.
...
Рейтинг: 0 / 0
ASE 12.5 - синхронизация с версионником.
    #36284468
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мы решали так:

Начали считать правильным не то, что в базе, а все то, что в версионнике.

Для достижения этого у нас пользовалась такая стратегия:
Днем девелореры могут делать все что хотят в своей девелоперской базе.
Ночью база перезаливается из тестерской и накатываются все изменения из версионника.
Т.о. если кто-чего не сохранил в версионнике - сам виноват.

В тесты и в продуктив все ставилось только из версионника.
--
ЗЫ: Версионники (например subversion) уже предоставляют тулзни для сравнения.
Не вижу смысла писать что-то свое...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5 - синхронизация с версионником.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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