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

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

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

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

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

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

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

Comparer - View

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

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

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

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

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

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


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

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


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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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


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


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


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