|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите кто как делает, к примеру такой случай, у клиента стоит БД, firebird embedded. Нужно ее обновить до текущего состояния. Когда ставили непонятно. Конечно можно снять скрипт всех объектов и обновить через IBScrypt.dll, но как быть с ключами и генераторами? Ведь я не знаю какие стоят, а каких нет. Как это делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 11:09 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchikкак быть с ключами и генераторами? Ведь я не знаю какие стоят, а каких нет. Это как? Тебе неизвестна структура БД предыдущей версии? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 11:18 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, к примеру клиент скачивал версию приложения 1. За 3 месяца вышли еще 5 версий, где в каждой добавлялось к примеру по 2 генератора. Если в последнее обновление включить только последние 2 генератора, то пользователь при обновлении пропустит остальные. Есть другой выход, кроме как собирать постоянно скрипты с каждым обновлением? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 11:20 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
запросить у него базу - не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 11:21 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Лично у меня - набор скриптов для апгрейда с каждой из предыдущих версий. Версия БД определяется по значению поля "VERSION" и потом на неё накатывается соответствующий скрипт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 11:25 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchikк примеру клиент скачивал версию приложения 1. За 3 месяца вышли еще 5 версий, где в каждой добавлялось к примеру по 2 генератора. Пять версий выпустил и не думал об обновлении и вдруг? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 12:03 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchik, Набор скриптов для миграции с версии на версию. Т.е. 1->1.5->2.0->2.1 причем скрипт не может быть накачен без применения более ранних версий. Порядок версий и набор скриптов передаются клиенту с пакетом обновлений. Во избежание шаловливых ручек - в бинарном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 12:20 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
wadman, это я так, пока только задумки... Спросил заранее, чтобы решить что делать - копить скрипты, либо есть другой выход... Похоже что нет :) Всем спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 12:28 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchik, Лучше копить. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 12:37 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchikкопить скрипты Использование VCS тебе не приходит в голову?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 13:02 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Если совсем кратко, то у нас 2 механизма обновлений, причем все данные для обновления хранятся в чистой БД, т.е. скачиваем в папку с программой свежую БД и запускаем обновление: 1. полное (с любой версии) - у обновляемой БД удаляются все метаданные кроме таблиц, генераторов и индексов - для каждой из промежуточных версий запускаются скрипты (создают новые поля, таблицы и т.д) - копируются метаданные из оригинала в обновляемую БД - запускаются скрипты модификации данных 2. инкрементальные (обновления не затрагивающие таблицы и данные). Как правило это обновление логики БД. Это простые скрипты накатываемые последовательно на базовую версию БД. В БД есть табличка: версия БД, версия в SVN, версия инкрементального обновления. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 19:11 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Без доступа к БД клиента я бы вообще поопасался обновляться. Сломаешь и не починишь) НАУЧИТЬ ИХ СДЕЛАТЬ БЭКАП. Была в IBEScript такая штука, как сравнение метаданных и данных, так вот можно по твоей эталонной и той, сгенерить скрипт разницы, накатишь его на ту же базу и она станет как эталонная. Поройся в документации у них по функциям со словами compare. Само собой можно что-то пропускать при сравнении и друга опциональность. Аналогично со сравнением данных, но оно уже потом, после обновления структуры. Например для переноса справочников из эталонки. Если что не понятно пиши в личку, может примеры поищу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2015, 20:50 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
aidynchik, у нас есть обновлятор с контролем версии и накатыванием скриптов. но в одной из веток изменения происходят быстрее, чем получается отлаживать обновления. поэтому делаем проще - клиенту дается пустая (эталонная) БД, в которую переносятся данные из живой. Оба способа в системе штатные. На базе до 2 гиг особенной разницы в скорости не видно. Оба способа требуют отключения пользователей. И, эта, сначала производят резервное копирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 08:15 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
А мы всегда кумулятивно накатываем обновление. С любой предыдущей на актуальную. Могут и по нескольку лет не обновляться. Есть приложение самописное для скачивания актуальных метаданных, оно генерирует разностный скрипт (с помощью IBEScript.dll). Этот скрипт потом вручную запускают (кто как умеет или техподдержке нашей делегируют) - апгрейдят базу. Программы из архива просто переписываются поверх старых с заменой существующих. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 08:35 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Ну и плюс дополнительные скрипты к разностному скрипту, конечно, тоже бывают. От версии к версии. Эти уже опираясь на номер установленной у клиента версии (в базе хранится). Мало ли справочники какие новые инициализировать или реорганизация данных по таблицам. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 09:04 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
pastorИ, эта, сначала производят резервное копирование.Старую версию клиента (если он exe) тоже стоит сохранять. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 09:38 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
У нас регламент такой: бэкап базы+старый софт сохраняем. Работу АРМ перед началом обновления приостанавливают. Особо продвинутые базу в монопольный режим переводят. В случае, если скрипт обновления отработал со странными им ошибками (на всякие ошибки, связанные с FK_ админы давно научены не возбуждаться), базу выкатывают с бэкапа назад, и софт с резервной копии тоже обратно кладут (если поспешили заменить). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 15:30 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
ГхостикpastorИ, эта, сначала производят резервное копирование.Старую версию клиента (если он exe) тоже стоит сохранять. Оно есть в базе :) Лень, склероз и раздолбайство - двигатель прогресса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 15:56 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
Какой хитрый... :) А у нас более 50 exe'шников в системе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 15:59 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
o_v_aКакой хитрый... :) А у нас более 50 exe'шников в системе :) ИМХО, наличие в базе данных клиентских приложений именно тех версий, которые нужны конкретной базе - один сплошной большой плюс. По крайней мере, пока объем (сжатых, конечно) бинарей не начинает существенно влиять на длительность бекапа. Тут тебе и все-в-одном для работы с базой многолетней давности, и удобство обновления (при условии, что клиентский софт умеет обновлять сам себя с базы данных), особенно удаленного. А если в системе полсотни бинарей, то я вообще слабо себе представляю как вы поддерживаете порядок не храня эти бинари в базе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 16:18 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
o_v_aА у нас более 50 exe'шников в системе :)Как раз удобней хранить такой зоопарк в базе, шоб не разбежался в разные стороны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 16:18 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
o_v_a, 50 * 10Мб = 500 Мб... В принципе размер не хилый, но и не такой уж запредельный. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 16:35 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
DarkMastero_v_a, 50 * 10Мб = 500 Мб... В принципе размер не хилый, но и не такой уж запредельный. Правда это без учета версий, но я не думаю, что все 50 ехе обновляются вместе с обновлением структуры БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 16:37 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
49 бинарников = 150 Мб формы отчётов - штук 150 на 6 Мб с десяток dll ... Идея интересная. Я подумаю :) Конечно, все не обновляются при апгрейде. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 17:17 |
|
Обновление БД у пользователя
|
|||
---|---|---|---|
#18+
o_v_a49 бинарников = 150 Мб формы отчётов - штук 150 на 6 Мб с десяток dll ... Идея интересная. Я подумаю :) А какая разница, сколько их у тебя. select binary_compressed from binaries where binary_name = 'mylib.dll' отработает одинаково что для 5 записей, что для 100. Зато ты знаешь, что у тебя на всех рабочих местах одинаковая версия mylib.dll независимо от ОС, аккуратности местного админа и вменяемости пользователей. С отчетами - аналогично. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2015, 23:19 |
|
|
start [/forum/topic.php?fid=40&fpage=76&tid=1562827]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 420ms |
0 / 0 |