Модификация структуры базы данных
SYSDBA (обсуждение | вклад) (→Добавление вызова скрипта в пакетный файл формирования эталонной БД) |
SYSDBA (обсуждение | вклад) (→Изменение версии структуры БД) |
||
| Строка 45: | Строка 45: | ||
VALUES (100, '0000.0001.0000.0127', '16.01.2008', 'GD_TEST table added'); | VALUES (100, '0000.0001.0000.0127', '16.01.2008', 'GD_TEST table added'); | ||
| − | Обратите внимание, что в вашем случае идентификатор, строковое представление версии БД, дата внесения изменений будут другими! | + | '''Обратите внимание, что в вашем случае идентификатор, строковое представление версии БД, дата внесения изменений будут другими!''' |
=== Добавление вызова скрипта в пакетный файл формирования эталонной БД === | === Добавление вызова скрипта в пакетный файл формирования эталонной БД === | ||
Версия 11:35, 24 августа 2008
Структура базы данных поставляемой с "голой" платформой называется эталонной, а сама база данных без пользовательских настроек – эталоном. Эталонная структура может меняться с выходом новых версий файла gedemin.exe. Для обновления существующих баз предусмотрен механизм модификации структуры. Рассмотрим его работу на следующем примере: пусть в эталонную структуру базы данных необходимо добавить таблицу GD_TEST и связанные с ней объекты: первичный ключ и триггер для его автоматического формирования.
Содержание |
Создание SQL скрипта
Первым делом создадим в подкаталоге SQL каталога GEDEMIN файл с именем gd_test.sql, который содержит следующий скрипт:
SET NAMES WIN1251;
SET SQL DIALECT 3;
CONNECT '<Имя сервера и путь к файлу с эталонной БД>'
USER 'SYSDBA' PASSWORD 'masterkey';
COMMIT;
CREATE TABLE gd_test (
id dintkey,
name dname
);
ALTER TABLE gd_test ADD CONSTRAINT gd_pk_test_id
PRIMARY KEY (id);
SET TERM ^ ;
CREATE TRIGGER gd_bi_test
BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW.id IS NULL) THEN
NEW.id = GEN_ID(gd_g_unique, 1) + GEN_ID(gd_g_offset, 0);
END
^
SET TERM ; ^
COMMIT;
Изменение версии структуры БД
История изменения версии структуры БД хранится в таблице fin_versioninfo. Ее структура и наполнение задаются в файле gd_version.sql. Запись с максимальным идентификатором соответствует текущей версии структуры. Отыщем максимальный номер и добавим в указанный файл новую запись о версии:
INSERT INTO fin_versioninfo VALUES (100, '0000.0001.0000.0127', '16.01.2008', 'GD_TEST table added');
Обратите внимание, что в вашем случае идентификатор, строковое представление версии БД, дата внесения изменений будут другими!
Добавление вызова скрипта в пакетный файл формирования эталонной БД
Эталонная БД формируется с помощью пакетного файла create.bat из каталога SQL. Откроем его на редактирование и добавим строку вызова нашего скрипта:
... isql -i gd_file.sql rem Вызываем наш скрипт isql -i gd_test.sql makelbrbtree.exe /sn czech:k:\bases\gedemin\etalon.fdb /tmp tst_tree_tbl.sql ...
Как показано в примере выше, обычно, вызов новых скриптов добавляется в конец файла, перед вызовом утилиты переформирования интервальных деревьев.