powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление БД у пользователя
25 сообщений из 26, страница 1 из 2
Обновление БД у пользователя
    #38951022
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Подскажите кто как делает, к примеру такой случай, у клиента стоит БД, firebird embedded.
Нужно ее обновить до текущего состояния. Когда ставили непонятно.
Конечно можно снять скрипт всех объектов и обновить через IBScrypt.dll, но как быть с ключами и генераторами? Ведь я не знаю какие стоят, а каких нет. Как это делается?
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951028
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikкак быть с ключами и генераторами? Ведь я не знаю какие стоят, а каких
нет.
Это как? Тебе неизвестна структура БД предыдущей версии?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951030
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

к примеру клиент скачивал версию приложения 1. За 3 месяца вышли еще 5 версий, где в каждой добавлялось к примеру по 2 генератора.
Если в последнее обновление включить только последние 2 генератора, то пользователь при обновлении пропустит остальные.
Есть другой выход, кроме как собирать постоянно скрипты с каждым обновлением?
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951031
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запросить у него базу - не могу
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично у меня - набор скриптов для апгрейда с каждой из предыдущих версий. Версия БД
определяется по значению поля "VERSION" и потом на неё накатывается соответствующий скрипт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951054
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikк примеру клиент скачивал версию приложения 1. За 3 месяца вышли еще 5 версий, где в каждой добавлялось к примеру по 2 генератора.

Пять версий выпустил и не думал об обновлении и вдруг?
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951062
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

Набор скриптов для миграции с версии на версию. Т.е. 1->1.5->2.0->2.1 причем скрипт не может быть накачен без применения более ранних версий. Порядок версий и набор скриптов передаются клиенту с пакетом обновлений. Во избежание шаловливых ручек - в бинарном виде.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951070
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

это я так, пока только задумки... Спросил заранее, чтобы решить что делать - копить скрипты, либо есть другой выход...
Похоже что нет :)
Всем спасибо
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951075
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

Лучше копить.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951086
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikкопить скрипты
Использование VCS тебе не приходит в голову?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951212
Alex Truhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если совсем кратко, то у нас 2 механизма обновлений, причем все данные для обновления хранятся в чистой БД, т.е. скачиваем в папку с программой свежую БД и запускаем обновление:
1. полное (с любой версии)
- у обновляемой БД удаляются все метаданные кроме таблиц, генераторов и индексов
- для каждой из промежуточных версий запускаются скрипты (создают новые поля, таблицы и т.д)
- копируются метаданные из оригинала в обновляемую БД
- запускаются скрипты модификации данных
2. инкрементальные (обновления не затрагивающие таблицы и данные). Как правило это обновление логики БД. Это простые скрипты накатываемые последовательно на базовую версию БД.

В БД есть табличка: версия БД, версия в SVN, версия инкрементального обновления.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951257
Roman Simakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без доступа к БД клиента я бы вообще поопасался обновляться. Сломаешь и не починишь)
НАУЧИТЬ ИХ СДЕЛАТЬ БЭКАП.
Была в IBEScript такая штука, как сравнение метаданных и данных, так вот можно по твоей эталонной и той, сгенерить скрипт разницы, накатишь его на ту же базу и она станет как эталонная. Поройся в документации у них по функциям со словами compare.
Само собой можно что-то пропускать при сравнении и друга опциональность.
Аналогично со сравнением данных, но оно уже потом, после обновления структуры. Например для переноса справочников из эталонки.

Если что не понятно пиши в личку, может примеры поищу.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951380
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

у нас есть обновлятор с контролем версии и накатыванием скриптов. но в одной из веток изменения происходят быстрее, чем получается отлаживать обновления.

поэтому делаем проще - клиенту дается пустая (эталонная) БД, в которую переносятся данные из живой.

Оба способа в системе штатные. На базе до 2 гиг особенной разницы в скорости не видно. Оба способа требуют отключения пользователей.
И, эта, сначала производят резервное копирование.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951390
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мы всегда кумулятивно накатываем обновление. С любой предыдущей на актуальную.
Могут и по нескольку лет не обновляться.
Есть приложение самописное для скачивания актуальных метаданных, оно генерирует разностный скрипт (с помощью IBEScript.dll).
Этот скрипт потом вручную запускают (кто как умеет или техподдержке нашей делегируют) - апгрейдят базу. Программы из архива просто переписываются поверх старых с заменой существующих.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951410
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и плюс дополнительные скрипты к разностному скрипту, конечно, тоже бывают. От версии к версии.
Эти уже опираясь на номер установленной у клиента версии (в базе хранится). Мало ли справочники какие новые инициализировать или реорганизация данных по таблицам.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951433
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastorИ, эта, сначала производят резервное копирование.Старую версию клиента (если он exe) тоже стоит сохранять.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951870
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас регламент такой: бэкап базы+старый софт сохраняем.
Работу АРМ перед началом обновления приостанавливают. Особо продвинутые базу в монопольный режим переводят.
В случае, если скрипт обновления отработал со странными им ошибками (на всякие ошибки, связанные с FK_ админы давно научены не возбуждаться), базу выкатывают с бэкапа назад, и софт с резервной копии тоже обратно кладут (если поспешили заменить).
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951901
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикpastorИ, эта, сначала производят резервное копирование.Старую версию клиента (если он exe) тоже стоит сохранять.

Оно есть в базе :) Лень, склероз и раздолбайство - двигатель прогресса.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951908
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой хитрый... :)
А у нас более 50 exe'шников в системе :)
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951923
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_aКакой хитрый... :)
А у нас более 50 exe'шников в системе :)
ИМХО, наличие в базе данных клиентских приложений именно тех версий, которые нужны конкретной базе - один сплошной большой плюс. По крайней мере, пока объем (сжатых, конечно) бинарей не начинает существенно влиять на длительность бекапа. Тут тебе и все-в-одном для работы с базой многолетней давности, и удобство обновления (при условии, что клиентский софт умеет обновлять сам себя с базы данных), особенно удаленного.

А если в системе полсотни бинарей, то я вообще слабо себе представляю как вы поддерживаете порядок не храня эти бинари в базе :)
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951924
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_aА у нас более 50 exe'шников в системе :)Как раз удобней хранить такой зоопарк в базе, шоб не разбежался в разные стороны.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951941
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

50 * 10Мб = 500 Мб... В принципе размер не хилый, но и не такой уж запредельный.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38951945
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMastero_v_a,

50 * 10Мб = 500 Мб... В принципе размер не хилый, но и не такой уж запредельный.

Правда это без учета версий, но я не думаю, что все 50 ехе обновляются вместе с обновлением структуры БД.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38952002
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
49 бинарников = 150 Мб
формы отчётов - штук 150 на 6 Мб
с десяток dll ...
Идея интересная. Я подумаю :)
Конечно, все не обновляются при апгрейде.
...
Рейтинг: 0 / 0
Обновление БД у пользователя
    #38952230
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a49 бинарников = 150 Мб
формы отчётов - штук 150 на 6 Мб
с десяток dll ...
Идея интересная. Я подумаю :)
А какая разница, сколько их у тебя. select binary_compressed from binaries where binary_name = 'mylib.dll' отработает одинаково что для 5 записей, что для 100. Зато ты знаешь, что у тебя на всех рабочих местах одинаковая версия mylib.dll независимо от ОС, аккуратности местного админа и вменяемости пользователей.

С отчетами - аналогично.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление БД у пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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