Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Database Comparer / 20 сообщений из 20, страница 1 из 1
01.09.2015, 07:42
    #39040136
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
В связи с кучей переделок в Database Comparer требуется тестирование.
Версию для тестирования выложил отдельно:
www.ibexpert.com/rus/ibe_sfx_test.exe

1. В первом приближении допилил напильником до FB 3.
2. Сделана визуализация необходимых изменений в целевой базе по результатам сравнения.
3. Сравнение привилегий (грантов) пока не делается.
4. Прямые апдейты системных таблиц (для предыдущих версий серверов) пока тоже заблокировано.

Можно потестировать хотя бы в вариантах:
1. Пустая мастер-база сравнивается с непустой целевой.
2. Непустая мастер-база сравнивается с пустой целевой.

В обоих случаях должен получиться корректный скрипт полного удаления (создания) объектов в целевой базе.
Проблемные варианты можно и нужно присылать мне на мыло в виде скриптов либо в виде файлов БД (только метаданные) с указанием версии сервера.

Помнится, какие-то еще вопросы были, связанные с ненужным удалением/созданием представлений, которые можно заменить на ALTER VIEW. Самое время их поднять.

Ну и хотелки/замечания по визуализации и т.д. приветствуются.
...
Рейтинг: 0 / 0
01.09.2015, 09:18
    #39040188
FedorinoFF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpertВ связи с кучей переделок в Database Comparer требуется тестирование.

я уже иду
...
Рейтинг: 0 / 0
01.09.2015, 11:47
    #39040372
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpertПомнится, какие-то еще вопросы были, связанные с ненужным удалением/созданием представлений, которые можно заменить на ALTER VIEW. Самое время их поднять.

Comparer - View

Еще вопросик, для повышения образованности?
Компарер лезет сверять зависимости для полей таблиц-вьюх или смотрит целиком по таблице-вьюхе?
пример CREATE TABLE tbl (
NAME VARCHAR(70) NOT NULL,
NEW_NAME VARCHAR(70) NOT NULL
);

если я дропну второе поле, то те кто зависит от первого будут пересозданы заново?

ЗЫ тестовый билд пока проверить не успел, но обязательно проверю.
...
Рейтинг: 0 / 0
01.09.2015, 12:26
    #39040427
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpert,

тогда и пользовательские сортировки неплохо бы подкрутить
http://www.sql.ru/forum/1133333/ibexpert-ne-umeet-rabotat-s-polzovatelskim-sortirovkami-collation?hl=collate
...
Рейтинг: 0 / 0
01.09.2015, 13:56
    #39040522
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpert,

1) Хочется кнопку для смены между собой Target и Source
2) Как выше сказано не сравнивает COLLATION

Здорово выглядит отображение изменившихся объектов
...
Рейтинг: 0 / 0
01.09.2015, 13:58
    #39040524
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Симонов Денистогда и пользовательские сортировки неплохо бы подкрутить


Помню про это.
...
Рейтинг: 0 / 0
01.09.2015, 14:07
    #39040533
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
FedorinoFFя уже иду

1. Пару косячков нашел по сравнению твоих баз. Но в целом случай несложный, зависимости легко разгребаются.
2. Игнорирование "незначащих" пробелов в компарере не будет, вроде же говорили уже об этом. Сравниваются "в лоб" тела двух процедур, например, и если есть хоть один лишний пробел - это залет, солдат. А то так можно и на форматирование забить и тупо BLR сравнивать.
3. Ложный DROP у тебя там вовсе не ложный, выражение проверки как раз на тот самый пробел и отличается.
4. С тормозами и AV все понятно: нет никакого смысла сравнивать и визуализировать разницу в скриптах из тыщи процедур. Либо ограничу количество объектов в скрипте для визуализации, либо вовсе буду показывать только отдельные объекты.
...
Рейтинг: 0 / 0
01.09.2015, 14:11
    #39040538
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Ivan_Pisarevsky Comparer - View


Я так понял, можно попробовать делать ALTER VIEW, если изменилось только само представление, но не менялись объекты, ее использующие. Именно попробовать, ибо не уверен, что изменение порядка полей, например, не потребует дропа и последующего создания заново. Пока только ощущения...

Ivan_PisarevskyЕще вопросик, для повышения образованности?
Компарер лезет сверять зависимости для полей таблиц-вьюх или смотрит целиком по таблице-вьюхе?
пример CREATE TABLE tbl (
NAME VARCHAR(70) NOT NULL,
NEW_NAME VARCHAR(70) NOT NULL
);

если я дропну второе поле, то те кто зависит от первого будут пересозданы заново?


Да, сейчас без вариантов.
...
Рейтинг: 0 / 0
01.09.2015, 14:29
    #39040576
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpert,

"Update Script" не редактируется
...
Рейтинг: 0 / 0
01.09.2015, 14:35
    #39040593
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
mvb"Update Script" не редактируется

И не должен. Грузи его в редактор скриптов (там есть кнопка на тулбаре) и редактируй.
...
Рейтинг: 0 / 0
01.09.2015, 14:35
    #39040595
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Шавлюк Евгений1) Хочется кнопку для смены между собой Target и Source


Самому хочется :)
...
Рейтинг: 0 / 0
01.09.2015, 14:47
    #39040607
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpertmvb"Update Script" не редактируется

И не должен. Грузи его в редактор скриптов (там есть кнопка на тулбаре) и редактируй.

понятно, спасибо.
Заодно уж спрошу - можно ли добавить галки типа "не выводить SET CLIENTLIB ..", "не выводить CONNECT .." и "не выводить комментарии Comparer'a"? По первым двум - скрипты будут выполняться на других машинах с разной разрядностью ОС и (бывает) местом установки FB, поэтому постоянно приходится убирать вручную.
...
Рейтинг: 0 / 0
02.09.2015, 06:32
    #39041067
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
mvbЗаодно уж спрошу - можно ли добавить галки типа "не выводить SET CLIENTLIB ..", "не выводить CONNECT .." и "не выводить комментарии Comparer'a"? По первым двум - скрипты будут выполняться на других машинах с разной разрядностью ОС и (бывает) местом установки FB, поэтому постоянно приходится убирать вручную.

После того, как я закончу с основным функционалом.
ЗЫ. Комментарии-то чем помешали?
...
Рейтинг: 0 / 0
02.09.2015, 08:38
    #39041095
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpertЯ так понял, можно попробовать делать ALTER VIEW, если изменилось только само представление, но не менялись объекты, ее использующие.Что-то вроде, только не использующие, а используемые, видимо имелись в виду.

IBExpertизменение порядка полейЕще есть камикадзе делающие select * from и потом fields[i]? порядок полей вообще какая-то странная сущность.
Опять таки попробовать же можно и проверить.

IBExpertДа, сейчас без вариантов.жаль,скрипт иной раз сильно пухнет от этого. С другой стороны проще код, меньше багов. Было бы здорово наличие такой опциональной фичи, но если хлопотно, то хрен с ней.
...
Рейтинг: 0 / 0
02.09.2015, 13:14
    #39041414
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
IBExpertЗЫ. Комментарии-то чем помешали?

после формирования скрипта я всегда просматриваю его "глазами" и множество бесполезных комментов, типа "/* Alter (имя_объекта) */", отвлекают. Не критично, конечно.
...
Рейтинг: 0 / 0
02.09.2015, 13:21
    #39041426
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Ivan_PisarevskyIBExpertизменение порядка полейЕще есть камикадзе делающие select * from и потом fields[i]? порядок полей вообще какая-то странная сущность.
скорее вопрос удобства, а не какой-то технической необходимости: когда у таблиц больше сотни полей, удобнее, чтобы в аналогичных базах разных АРМов они выглядели одинаково, если вдруг приходится лезть в них "руками".
...
Рейтинг: 0 / 0
04.09.2015, 13:08
    #39043359
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Вроде даже именно к новому интерфейсу и не относится, а было ранее. Просто в чистом эксперименте увидел такое поведение. И я даже ума не приложу, что с этим можно сделать.

1) Исходная база: в таблице есть поле SMALLINT с неявно заданным доменом RDB$2, и этот домен отредактирован с целью значения по умолчанию = 0. Да, именно так. Вместо создания явного пользовательского домена с default 0 и привязкой нового домена к полю просто отредактирован системный. Благо, IBExpert это позволяет.

2) С базы извлекаются метаданные.
В скрипте default 0 приписывается не домену, а ПОЛЮ таблицы.

3) Создаётся с этих метаданных новая база. Ожидаем, конечно, что она будет идентична исходной.
С позиции логики всё равно, где прописан default 0 - для поля или для домена этого поля.

4) Сравниваем DBCompare'ром исходную (source) и новую (destination) базу.
И... в разностном скрипте получаем DROP DEFAULT для поля таблицы.
Если поверить "на слово" DBCompare'ру, то после выполнения скрипта базы перестанут быть идентичными в части этого поля.
В результирующей базе произойдёт потеря значения по умолчанию для поля.
...
Рейтинг: 0 / 0
04.09.2015, 15:28
    #39043558
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
o_v_a3) Создаётся с этих метаданных новая база. Ожидаем, конечно, что она будет идентична исходной.
С позиции логики всё равно, где прописан default 0 - для поля или для домена этого поля.


В общем случае, не все равно, поэтому в данном случае эксперт поступает не совсем правильно, извлекая дефолтовое значение домена в определение поля таблицы.
Можно и компарер научить такие вещи обрабатывать, наверное, но правильнее будет не задавать дефолтовое значение на уровне системного домена.
...
Рейтинг: 0 / 0
04.09.2015, 15:31
    #39043562
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
Согласен, что лучше не менять поведения в IBExpert. Ковыряния в системных таблицах - суть зло.
Но ведь есть кнопочка "Редактировать домен" при просмотре поля без явно заданного домена :)
В эталонной базе у себя мы все эти ситуации уже локализовали по горячим следам и исправили.
Будем считать, для других грабли расставил.
...
Рейтинг: 0 / 0
04.09.2015, 15:47
    #39043581
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Database Comparer
o_v_aСогласен, что лучше не менять поведения в IBExpert. Ковыряния в системных таблицах - суть зло.
Но ведь есть кнопочка "Редактировать домен" при просмотре поля без явно заданного домена :)


Это можно сделать и без ковыряния в системных таблицах, через ALTER DOMAIN. Сервер не против, эксперт тоже не против.
А вот как это в скрипт извлекать - фиг знает.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Database Comparer / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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