Консольная утилита обновления баз данных предназначенная для разработчиков и администраторов баз данных под управлением Firebird/Interbase.
Windows | ||
---|---|---|
fbupdate1_8.zip | 92.63 КБ | Загрузить |
Утилита позволяет автоматизировать обновление базы данных до необходимой версии на основании информации о версии базы хранящейся в ней. При этом возможно обновление нескольких баз одной командой. Базы могут иметь различную исходную версию.
Утилита не требует инсталяции. Все настройки хранятся в стандаотном INI-файле (Пример файла ниже). В следствии чего возможен одновременный запуск нескольких копий утилиты с различными настройками на одном компьютере. Кроме того возможен запуск утилиты с параметрами командной строки.
Для обновления используются стандартные SQL-скрипты (Пример SQL-скрипта ниже). Строки подключения к базе данных игнорируются. В скриптах возможно применение переменных. Переменным должно предшествовать "$$". Скрипты могут содержать коментарии. Для автоматического обновления необходимо:
Если в команде SELECT будет отсутствовать часть "into $$you_var" то вывод результата будет произведен в консоль
Протокл работы утилиты сохраняется в файле. Утилита работает не через isql.exe, а использует непосредственное подключение к СУБД. Для базы Firebird необходимо доступность в путях nпоиска или в текущем каталоге утилиты библиотеки fbclient.dll (Входит в дистрибутив Firebird). Утилита обновления баз данных написана на зыке C++.
Выражаю благодарность Фролову Сергею автору первого варианта данной утилиты на Delphi.
Буду рад вашим отзывам и предложениям.
select name from T1 where id=1 into $$Test; insert into T2 (id,name) values (2,'$$Test'); commit; update DBVersion set Build = '2.281.16.0'; commit;
;**************************************************************** ; ; ФАЙЛ ОСНОВНЫХ НАСТРОЕК FBUPDATE ; ;**************************************************************** ; Все настройки утилиты доступны из командной строки. Пример: ; fbupdate -a" C:\ Program Files\YourSoft\bin\yoursoft.exe" -sC:\FBUpdate\Data\ -uSYSDBA - pmasterkey ; Параметры не установленные в командной строке принимаются из файла настройки ; ; Существует также ключ -q для выполнения указанного скрипта без учета версий. Например ; fbupdate -q*.sql Выполнит все файлы из текущего каталога с расширением sql [main] ; Путь к папке со скриптами для обновления БД. ; Ключ коммандной строки -s SqlScript=C:\FBUpdate\Data\ ; Имя пользователя и пароль для подключения к БД. По умолчанию ; "SYSDBA" и "masterkey" соответственно ; Ключ коммандной строки -u UserName=SYSDBA ; Ключ коммандной строки -p Password=masterkey ; Таблица содержащая информацию о версии БД. По умолчанию "DBVERSION" ; Ключ коммандной строки -v VersionInfoTable=DBVERSION ; Поле содержащее информацию о версии БД. По умолчанию "BUILD" ; Ключ коммандной строки -f VersionInfoField=BUILD ; Условие к запросу для получения информации о версии БД. По умолчанию "" ; Ключ коммандной строки -w VersionInfoWhere=upper(name) like 'ВЕРСИЯ БАЗЫ ДАННЫХ' ; "Глубина" версии исполняемого файла приложения ограничивающая версию ;обновления базы. По умолчанию 2. Т.е., например: если у нас этот ;параметр равен 2; новая версия приложения 1.32.0.0, текущая версия БД ;будут выполняться скрипты версий до 1.32.Х.Х, где Х - любое. ; Ключ коммандной строки -d VersionDepth=2 ; Обработка ошибок: ; 0 - пропустить обработку текущей базы при ошибке (по умолчанию) ; 1 - остановить обработку всех баз при ошибке ; 2 - задать вопрос при ошибке ; 3 - продолжать выполнение ; Ключ коммандной строки -e ErrorProcessing=2 ; Если задано и заданы имена пользователей в разделе [users]. То будет производится ; копирование прав имеющихся у пользователя, от имени которого производится ; обновление, после выполнения всех скриптов для каждой базы. ; Параметр задает какие права надо копировать (Порядок следования не важен): ; I - insert (вставлять строки в таблицы или представления) ; S - select (выбирать строки из таблиц или представлений) ; D - delete (удалять строки из таблиц или представлений) ; U - update (обновлять строки в таблицах или представлениях) ; R - reference (Зависимоть указанных столбцов с внешним ключом; как минимум, ; это нужно предоставить всем столбцам первичного ключа) ; X - execute (выполнение хранимых процедур) ; G - grantes (установка прав) ; По умолчанию не задан, т.е. копирование прав не производится CopyGrantes=ISDURX ; Следующий параметр заставляет скрывать весь вывод утилиты. ;Может принимать следующие значения: ; 0 - скрывать ; 1 - отображать (по умолчанию) ; Ключ коммандной строки -h приведет к скрытию вывода ShowInfoOnScreen=1 [bases] ; Если указан параметр -b с указанием БД, то данный список не обрабатывается db1=c:\data\bd1.gdb db2=c:\data\bd2.fdb db23=c:\data\bd3.gdb [users] ; Если заданы и задан параметр CopyGrantes то будет производится копирование прав ; имеющихся у пользователя, от имени которго производится обновление, после выполнения всех скриптов для каждой базы. us1=REPL us2=TEST