|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Можно сделать так, чтобы в скрипте на обновление сначала обновлялись заголовки всех пакетов, а только потом их тела? А то сейчас приходится руками менять порядок ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 17:43 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
А еще лучше - сначала дропать тело всех измененных пакетов, потом обновлять заголовки и только потом создавать тело Тут еще один нюанс. Рефакторил один пакет. Функцию переделал на процедуру. От нее зависело два других пакета у которых поменялось только тело и эксперт в скрипт на обновление добавил только пересоздание тела (без заголовка). Так вот - скрипт не смог выполнится ругань на несоответствие сигнатуры в заголовке и теле. (Хотя ни эксперт ни я различий не увидел). Добавил заголовок - скрипт выполнился успешно. После этого убрал заголовки этих двух пакетов и скрипт выполнился успешно. Т.е. похоже на баг сервера. Может включать обновления заголовка для случая когда меняется только тело? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 08:15 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Так это баг сервера? Или не баг сервера? Или что еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 14:49 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
IBExpertТак это баг сервера? Или не баг сервера? Или что еще? Похоже на баг, но не особо воспроизводится... Проблема в неправильном порядке обновления пакетов. Как по мне, то порядок должен быть такой: 1. сначала дропать тело всех измененных пакетов 2. потом обновлять заголовки 3. только потом создавать тело И как опция (по галке, если можно) - включать обновления заголовка для случая когда меняется только тело ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:38 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
И еще - если поменялся только заголовок, то тело надо перекомпилировать иначе оно становится невалидным ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 17:36 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
slay2012И еще - если поменялся только заголовок, то тело надо перекомпилировать иначе оно становится невалидным Это сделал. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 13:08 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
slay2012Проблема в неправильном порядке обновления пакетов. Как по мне, то порядок должен быть такой: 1. сначала дропать тело всех измененных пакетов 2. потом обновлять заголовки 3. только потом создавать тело Мне сие не кажется правильным. Нафига тогда пакеты разделены на заголовок и тело, если на каждый чих их надо практически заново пересоздавать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 13:12 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
IBExpertslay2012Проблема в неправильном порядке обновления пакетов. Как по мне, то порядок должен быть такой: 1. сначала дропать тело всех измененных пакетов 2. потом обновлять заголовки 3. только потом создавать тело Мне сие не кажется правильным. Нафига тогда пакеты разделены на заголовок и тело, если на каждый чих их надо практически заново пересоздавать? А как иначе если есть зависимости между пакетами? Меняется сигнатура или удаляется процедура/функция и все - пока не удалишь тело зависимых пакетов обновить не даст. спорным (не правильным) тут только это: slay2012И как опция (по галке, если можно) - включать обновления заголовка для случая когда меняется только тело У меня один раз сервер не захотел принимать тело, пока не обновил заголовок (хотя он и не менялся). Ругался на несовпадение сигнатуры процедуры. Скорее всего это баг, но воспроизвести не смог. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 14:19 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
slay2012А как иначе если есть зависимости между пакетами? Меняется сигнатура или удаляется процедура/функция и все - пока не удалишь тело зависимых пакетов обновить не даст. Про зависимости, заметь, у тебя только вот сейчас всплыло. Я же по другому поводу недоумевал: зачем, например, дропать тело и обновлять заголовок, если что-то там в теле изменилось? Короче, мне пока не очень понятно, что там не так с пакетами. Как сейчас компарер их обновляет? У меня нет тест-кейза с пакетами под рукой, проверить с ходу не могу. Можешь сделать свой и прислать мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 14:54 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
IBExpertКороче, мне пока не очень понятно, что там не так с пакетами. Как сейчас компарер их обновляет? Сейчас порядок такой: Код: sql 1. 2. 3. 4. 5. 6.
Порядок самих пакетов очень похож на алфавитный. Первая проблема - это если в PackageA используется процедура/функция из пакета PackageB. На момент обновления тела PackageA будет облом. Сейчас я такое решаю ручным изменением порядка на вот такой: Код: sql 1. 2. 3. 4. 5. 6.
Вторая проблема - это если в PackageA или PackageB изменилась сигнатура процедуры или ее удалили, которую использует PackageC. В этом случае порядок надо вот такой: Код: sql 1. 2. 3. 4. 5. 6. 7.
Собственно, чтобы не заморачиватся с определением зависимостей я и предлагаю: 1. дропаем тела всех измененных пакетов (можно пропустить, если нет изменений в заголовках) 2. Обновляем заголовки (если есть) 3. Создаем тело все дропнутых на первом шаге. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 15:29 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Попробуй эту версию: www.ibexpert.com/rus/ibe_sfx_pkg.exe ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 07:48 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
IBExpertПопробуй эту версию: www.ibexpert.com/rus/ibe_sfx_pkg.exe Теперь ругань на отсутствие into (используется as cursor) Код: plaintext 1. 2. 3.
Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 09:37 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
slay2012Теперь ругань на отсутствие into (используется as cursor) У меня не воспроизводится. Подожду нормального тест-кейза, пожалуй. Надоело самому их придумывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 10:19 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Не в ту тему ответил.... По этой теме: Тело измененного пакета дропается, но вот обновление заголовка надо бы перенести до обновления тела. Сейчас получился такой порядок: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
А нужно вот так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 10:26 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Сегодня опять нарвался на неверный порядок скрипта обновления. Expert 2019.9.22.1 Получил вот такой порядок: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Первыми обломились триггера - ибо использовали новые процедуры из Pkg2 и Pkg3 Потом обломился RECREATE PACKAGE BODY Pkg1 по той же причине Собственно порядок должен быть вот такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2019, 15:22 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
"Подожду нормального тест-кейза, пожалуй. Надоело самому их придумывать." (c) мой ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2019, 16:01 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
IBExpert"Подожду нормального тест-кейза, пожалуй. Надоело самому их придумывать." (c) мой В каком виде надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2019, 16:13 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
slay2012В каком виде надо? Два скрипта или две базы, которые я могу сравнить и воспроизвести проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2019, 17:16 |
|
Database Comparer: Пакеты
|
|||
---|---|---|---|
#18+
Завтра сделаю. Куда слать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2019, 17:28 |
|
|
start [/forum/topic.php?fid=42&msg=39702391&tid=1598705]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 399ms |
0 / 0 |