Я бы предложил выгрузить схему БД с помощью scheme2ddl из комплекта code.google.com/p/oracle-ddl2svn/ и сравнивать например, с помощью diff мли Araxis Merge.
Использую для контроля изменения структуры БД Oracle самописную программку oracle-ddl2svn.
Ставлю ее на расписание, чтобы она выкачивала всю схему БД в виде DDL-скриптов и коммитила их в систему контроля версий SVN.
Написана на Java, Spring.
Народ качает, пользуется. Даже шлют положительные отзывы.
> У вас часто возникает необходимость быстро конвертировать время из timestamp, ансериализовать строку и распечатать объект, узнать md5 хэш строки, кодировать ее в base64-обратно и т.д.?
1) ICANN заработает бабла,
2) фишеры будут очень рады, потому что в слове com русскую с не отличить от английской с
3) корпорации заведут себе корпоративные домены и будут бороться против фишеров
«Все» — неточный термин =)
У меня цель была не допустить рассинхронизацию. Достигается с помощью oracle-ddl2svn.
А тут топик про то, как сводить разные версии к одной.
>>а как она автоматически разруливает такие неопределенности типа изменения поля c NULL на NOT NULL???
Автоматически oracle-ddl2svn ничего не разруливает. Только сообщает, что есть изменения.
Diff'а для генерации скрипта по изменениям DDL в программе нет.
Кстати, такой diff есть в PL/SQL developer и в TОAD.
А так DDL поменяется, например, было
CREATE TABLE "CTC"."TABLE1"
( "ID" VARCHAR2(16));
Стало
CREATE TABLE "CTC"."TABLE1"
( "ID" VARCHAR2(16) NOT NULL ENABLE);
Для предотвращения проблем с рассинхронизацией схемы БД на разных площадках у нас на проекте используется утилитка oracle-ddl2svn. Автоматическое отслеживание изменений схемы БД Oracle в системе контроля версий SVN. Схема БД храниться в виде DDL скриптов.
Плюс программы, что она делает все автоматически. Т.е. настраивается периодическое задание и потом остается только смотреть, что поменялось в схеме за указанный период.
Утилиту написал я в начале года. Вначале искал что-нибудь уже готовое, но ничего не нашел. Решил потратить пару выходных и написать свое. В итоге потратил больше, но написал довольно универсальную программку. Выложил ее на гуглокод, опубликовал ссылку на sql.ru и stackoverflow.com. Народ ей пользуется и даже присоединился коммитер из США )
Мне рассказывали, что Дубаи славится проституцией в ночных клубах.
То, чего нельзя на улице днем, можно (и процветает) за закрытыми дверями ночью.
И еще, что меня позабавило, на какой-то национальный праздник местные арабы приклеивают к машинам разноцветные перья в цвета нац флага и гоняют по городу.
Про документооборот можно поподробнее?
В чем он заключается? В том, что документы выкладываются в одно место и доступны через web-интерфейс?
Или есть workflow? Т.е. можно завести служебку, ввести туда согласующих, подписывающих, исполнителя и система пошлет документ вначале согласующим, потом (если они согласовали) на подписание, а потом на исполнение.
Gradle — наш выбор.
Можно задавать любой паттерн для внешних зависимостей, см 44.6.5.1. Defining custom patterns for an Ivy repository.
Слов «Ivy repository» в данном случае пугаться не надо — это практически любой репозиторий, т.к. все настраивается.
По-моему самое главное правило при работе с NULL — не делайте булевы поля Nullable!
Очень часто сталкиваюсь.
А проектировщики проектируют базы в которых F_FLAG — булево поле, если NULL — то false, если не NULL то true.
Разработчик потом пишет
select * from table t where t.f_flag is not null
А то что запрос потом не разгонишь с помощью индексов никто не думает.
Ставлю ее на расписание, чтобы она выкачивала всю схему БД в виде DDL-скриптов и коммитила их в систему контроля версий SVN.
Написана на Java, Spring.
Народ качает, пользуется. Даже шлют положительные отзывы.
Честно — ни разу не было =)))
Кто на работе сидит с 3D очками?
3D должна быть как опция.
2) фишеры будут очень рады, потому что в слове com русскую с не отличить от английской с
3) корпорации заведут себе корпоративные домены и будут бороться против фишеров
У меня цель была не допустить рассинхронизацию. Достигается с помощью oracle-ddl2svn.
А тут топик про то, как сводить разные версии к одной.
Профилактика обычно дешевле лечения.
Автоматически oracle-ddl2svn ничего не разруливает. Только сообщает, что есть изменения.
Diff'а для генерации скрипта по изменениям DDL в программе нет.
Кстати, такой diff есть в PL/SQL developer и в TОAD.
А так DDL поменяется, например, было
Стало
Это зафиксируется в SVN
Плюс программы, что она делает все автоматически. Т.е. настраивается периодическое задание и потом остается только смотреть, что поменялось в схеме за указанный период.
Утилиту написал я в начале года. Вначале искал что-нибудь уже готовое, но ничего не нашел. Решил потратить пару выходных и написать свое. В итоге потратил больше, но написал довольно универсальную программку. Выложил ее на гуглокод, опубликовал ссылку на sql.ru и stackoverflow.com. Народ ей пользуется и даже присоединился коммитер из США )
То, чего нельзя на улице днем, можно (и процветает) за закрытыми дверями ночью.
И еще, что меня позабавило, на какой-то национальный праздник местные арабы приклеивают к машинам разноцветные перья в цвета нац флага и гоняют по городу.
stackoverflow.com/questions/171828/how-best-to-store-subversion-version-information-in-ears
stackoverflow.com/questions/690419/build-and-version-numbering-for-java-projects-ant-cvs-hudson
В чем он заключается? В том, что документы выкладываются в одно место и доступны через web-интерфейс?
Или есть workflow? Т.е. можно завести служебку, ввести туда согласующих, подписывающих, исполнителя и система пошлет документ вначале согласующим, потом (если они согласовали) на подписание, а потом на исполнение.