|
Database Comparer
|
|||
---|---|---|---|
#18+
В связи с кучей переделок в Database Comparer требуется тестирование. Версию для тестирования выложил отдельно: www.ibexpert.com/rus/ibe_sfx_test.exe 1. В первом приближении допилил напильником до FB 3. 2. Сделана визуализация необходимых изменений в целевой базе по результатам сравнения. 3. Сравнение привилегий (грантов) пока не делается. 4. Прямые апдейты системных таблиц (для предыдущих версий серверов) пока тоже заблокировано. Можно потестировать хотя бы в вариантах: 1. Пустая мастер-база сравнивается с непустой целевой. 2. Непустая мастер-база сравнивается с пустой целевой. В обоих случаях должен получиться корректный скрипт полного удаления (создания) объектов в целевой базе. Проблемные варианты можно и нужно присылать мне на мыло в виде скриптов либо в виде файлов БД (только метаданные) с указанием версии сервера. Помнится, какие-то еще вопросы были, связанные с ненужным удалением/созданием представлений, которые можно заменить на ALTER VIEW. Самое время их поднять. Ну и хотелки/замечания по визуализации и т.д. приветствуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 07:42 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpertВ связи с кучей переделок в Database Comparer требуется тестирование. я уже иду ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 09:18 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpertПомнится, какие-то еще вопросы были, связанные с ненужным удалением/созданием представлений, которые можно заменить на ALTER VIEW. Самое время их поднять. Comparer - View Еще вопросик, для повышения образованности? Компарер лезет сверять зависимости для полей таблиц-вьюх или смотрит целиком по таблице-вьюхе? пример CREATE TABLE tbl ( NAME VARCHAR(70) NOT NULL, NEW_NAME VARCHAR(70) NOT NULL ); если я дропну второе поле, то те кто зависит от первого будут пересозданы заново? ЗЫ тестовый билд пока проверить не успел, но обязательно проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 11:47 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpert, тогда и пользовательские сортировки неплохо бы подкрутить http://www.sql.ru/forum/1133333/ibexpert-ne-umeet-rabotat-s-polzovatelskim-sortirovkami-collation?hl=collate ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 12:26 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpert, 1) Хочется кнопку для смены между собой Target и Source 2) Как выше сказано не сравнивает COLLATION Здорово выглядит отображение изменившихся объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 13:56 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Симонов Денистогда и пользовательские сортировки неплохо бы подкрутить Помню про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 13:58 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
FedorinoFFя уже иду 1. Пару косячков нашел по сравнению твоих баз. Но в целом случай несложный, зависимости легко разгребаются. 2. Игнорирование "незначащих" пробелов в компарере не будет, вроде же говорили уже об этом. Сравниваются "в лоб" тела двух процедур, например, и если есть хоть один лишний пробел - это залет, солдат. А то так можно и на форматирование забить и тупо BLR сравнивать. 3. Ложный DROP у тебя там вовсе не ложный, выражение проверки как раз на тот самый пробел и отличается. 4. С тормозами и AV все понятно: нет никакого смысла сравнивать и визуализировать разницу в скриптах из тыщи процедур. Либо ограничу количество объектов в скрипте для визуализации, либо вовсе буду показывать только отдельные объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:07 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky Comparer - View Я так понял, можно попробовать делать ALTER VIEW, если изменилось только само представление, но не менялись объекты, ее использующие. Именно попробовать, ибо не уверен, что изменение порядка полей, например, не потребует дропа и последующего создания заново. Пока только ощущения... Ivan_PisarevskyЕще вопросик, для повышения образованности? Компарер лезет сверять зависимости для полей таблиц-вьюх или смотрит целиком по таблице-вьюхе? пример CREATE TABLE tbl ( NAME VARCHAR(70) NOT NULL, NEW_NAME VARCHAR(70) NOT NULL ); если я дропну второе поле, то те кто зависит от первого будут пересозданы заново? Да, сейчас без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:11 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpert, "Update Script" не редактируется ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:29 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
mvb"Update Script" не редактируется И не должен. Грузи его в редактор скриптов (там есть кнопка на тулбаре) и редактируй. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:35 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Шавлюк Евгений1) Хочется кнопку для смены между собой Target и Source Самому хочется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:35 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpertmvb"Update Script" не редактируется И не должен. Грузи его в редактор скриптов (там есть кнопка на тулбаре) и редактируй. понятно, спасибо. Заодно уж спрошу - можно ли добавить галки типа "не выводить SET CLIENTLIB ..", "не выводить CONNECT .." и "не выводить комментарии Comparer'a"? По первым двум - скрипты будут выполняться на других машинах с разной разрядностью ОС и (бывает) местом установки FB, поэтому постоянно приходится убирать вручную. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2015, 14:47 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
mvbЗаодно уж спрошу - можно ли добавить галки типа "не выводить SET CLIENTLIB ..", "не выводить CONNECT .." и "не выводить комментарии Comparer'a"? По первым двум - скрипты будут выполняться на других машинах с разной разрядностью ОС и (бывает) местом установки FB, поэтому постоянно приходится убирать вручную. После того, как я закончу с основным функционалом. ЗЫ. Комментарии-то чем помешали? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2015, 06:32 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpertЯ так понял, можно попробовать делать ALTER VIEW, если изменилось только само представление, но не менялись объекты, ее использующие.Что-то вроде, только не использующие, а используемые, видимо имелись в виду. IBExpertизменение порядка полейЕще есть камикадзе делающие select * from и потом fields[i]? порядок полей вообще какая-то странная сущность. Опять таки попробовать же можно и проверить. IBExpertДа, сейчас без вариантов.жаль,скрипт иной раз сильно пухнет от этого. С другой стороны проще код, меньше багов. Было бы здорово наличие такой опциональной фичи, но если хлопотно, то хрен с ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2015, 08:38 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
IBExpertЗЫ. Комментарии-то чем помешали? после формирования скрипта я всегда просматриваю его "глазами" и множество бесполезных комментов, типа "/* Alter (имя_объекта) */", отвлекают. Не критично, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2015, 13:14 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyIBExpertизменение порядка полейЕще есть камикадзе делающие select * from и потом fields[i]? порядок полей вообще какая-то странная сущность. скорее вопрос удобства, а не какой-то технической необходимости: когда у таблиц больше сотни полей, удобнее, чтобы в аналогичных базах разных АРМов они выглядели одинаково, если вдруг приходится лезть в них "руками". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2015, 13:21 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Вроде даже именно к новому интерфейсу и не относится, а было ранее. Просто в чистом эксперименте увидел такое поведение. И я даже ума не приложу, что с этим можно сделать. 1) Исходная база: в таблице есть поле SMALLINT с неявно заданным доменом RDB$2, и этот домен отредактирован с целью значения по умолчанию = 0. Да, именно так. Вместо создания явного пользовательского домена с default 0 и привязкой нового домена к полю просто отредактирован системный. Благо, IBExpert это позволяет. 2) С базы извлекаются метаданные. В скрипте default 0 приписывается не домену, а ПОЛЮ таблицы. 3) Создаётся с этих метаданных новая база. Ожидаем, конечно, что она будет идентична исходной. С позиции логики всё равно, где прописан default 0 - для поля или для домена этого поля. 4) Сравниваем DBCompare'ром исходную (source) и новую (destination) базу. И... в разностном скрипте получаем DROP DEFAULT для поля таблицы. Если поверить "на слово" DBCompare'ру, то после выполнения скрипта базы перестанут быть идентичными в части этого поля. В результирующей базе произойдёт потеря значения по умолчанию для поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2015, 13:08 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
o_v_a3) Создаётся с этих метаданных новая база. Ожидаем, конечно, что она будет идентична исходной. С позиции логики всё равно, где прописан default 0 - для поля или для домена этого поля. В общем случае, не все равно, поэтому в данном случае эксперт поступает не совсем правильно, извлекая дефолтовое значение домена в определение поля таблицы. Можно и компарер научить такие вещи обрабатывать, наверное, но правильнее будет не задавать дефолтовое значение на уровне системного домена. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2015, 15:28 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
Согласен, что лучше не менять поведения в IBExpert. Ковыряния в системных таблицах - суть зло. Но ведь есть кнопочка "Редактировать домен" при просмотре поля без явно заданного домена :) В эталонной базе у себя мы все эти ситуации уже локализовали по горячим следам и исправили. Будем считать, для других грабли расставил. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2015, 15:31 |
|
Database Comparer
|
|||
---|---|---|---|
#18+
o_v_aСогласен, что лучше не менять поведения в IBExpert. Ковыряния в системных таблицах - суть зло. Но ведь есть кнопочка "Редактировать домен" при просмотре поля без явно заданного домена :) Это можно сделать и без ковыряния в системных таблицах, через ALTER DOMAIN. Сервер не против, эксперт тоже не против. А вот как это в скрипт извлекать - фиг знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2015, 15:47 |
|
|
start [/forum/topic.php?fid=42&msg=39041426&tid=1599464]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 479ms |
0 / 0 |