Модификация структуры базы данных

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 40: Строка 40:
 
=== Изменение версии структуры БД ===
 
=== Изменение версии структуры БД ===
  
 +
История изменения версии структуры БД хранится в таблице [[fin_versioninfo]]. Ее структура и наполнение задаются в файле gd_version.sql. Запись с максимальным идентификатором соответствует текущей версии структуры. Отыщем максимальный номер и добавим в указанный файл новую запись о версии:
  
 +
  INSERT INTO fin_versioninfo
 +
    VALUES (100, '0000.0001.0000.0127', '16.01.2008', 'GD_TEST table added');
  
Добавляем новую запись в gd_version
+
Обратите внимание, что в вашем случае идентификатор, строковое представление версии БД, дата внесения изменений будут другими!
 +
 
 +
=== Добавление вызова скрипта в пакетный файл формирования эталонной БД ===
 +
 
 +
Эталонная БД формируется с помощью пакетного файла 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
 +
  ...
 +
 
 +
Обычно, вызов новых скриптов добавляется в конец файла, перед вызовом утилиты переформирования интервальных деревьев.
 +
 
 +
=== Создание процедуры модификации структуры существующей БД ===
 +
 
 +
=== Добавление процедуры в общий список ===
 +
 
 +
=== Компиляция и запуск ===
 +
 
 +
[[Category:База данных]]

Версия 19:04, 23 августа 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
 ...

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

Создание процедуры модификации структуры существующей БД

Добавление процедуры в общий список

Компиляция и запуск

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты