Переход с Yaffil на Firebird 2.0.x
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии 2 участников) | |||
| Строка 1: | Строка 1: | ||
| − | Основная проблема при миграции | + | '''См. [[Переход на Firebird 2.5]].''' |
| + | |||
| + | <toggledisplay showtext="Остальная часть материала теперь уже устарела." hidetext="Скрыть"> | ||
| + | Основная проблема при миграции базы с сервера [[Yaffil]] на [[Firebird]] 2.0.х -- это отсутствие в последнем встроенных функций '''BIN_AND''' и '''BIN_OR''', широко используемых в триггерах и хранимых процедурах базы данных Гедымина. | ||
Для перехода в ручном режиме вам понадобится свежая установка сервера [http://firebirdsql.org/index.php?op=files&id=engine Firebird 2.0.x] и утилита [http://ibexpert.net/ibe/index.php?n=Main.TrialVersion IBExpert]. | Для перехода в ручном режиме вам понадобится свежая установка сервера [http://firebirdsql.org/index.php?op=files&id=engine Firebird 2.0.x] и утилита [http://ibexpert.net/ibe/index.php?n=Main.TrialVersion IBExpert]. | ||
| Строка 8: | Строка 11: | ||
# Деинсталируем Yaffil. Не забываем сохранить [[gudf.dll]] из подкаталога udf основного каталога размещения сервера Yaffil. | # Деинсталируем Yaffil. Не забываем сохранить [[gudf.dll]] из подкаталога udf основного каталога размещения сервера Yaffil. | ||
# Устанавливаем и запускаем сервер Firebird 2.0.5 (последняя доступная версия на момент написания статьи). | # Устанавливаем и запускаем сервер Firebird 2.0.5 (последняя доступная версия на момент написания статьи). | ||
| − | # Копируем библиотеку gudf.dll в подкаталог udf. | + | # Копируем библиотеку gudf.dll в подкаталог udf сервера Firebird. |
| − | # Устанавливаем IBExpert | + | # Устанавливаем IBExpert (если он еще не был установлен) |
# Подключаемся к существующей базе с помощью IBExpert | # Подключаемся к существующей базе с помощью IBExpert | ||
# Регистрируем внешние функции с помощью команд: | # Регистрируем внешние функции с помощью команд: | ||
| Строка 24: | Строка 27: | ||
# Не забываем делать COMMIT после каждой команды. | # Не забываем делать COMMIT после каждой команды. | ||
| − | # | + | # В дереве объектов базы данных, используя меню по правой нопке мыши, выполняем команды '''Перекомпилировать процедуры''' и '''Перекомпилировать триггеры'''. |
| − | # Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код и повторно запускаем перекомпиляцию. | + | # Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код с помощью команд '''ALTER TRIGGER''' или '''ALTER PROCEDURE''' и повторно запускаем перекомпиляцию. Если вы не знаете как исправить ошибочный код триггера или процедуры, то временно можно закоментировать все команды между первым '''BEGIN''' и последним '''END'''. После окончания процесса миграции не забудьте вернуться, раскоментировать код и исправить все ошибки. |
| − | # Делаем архивную копию и восстанавливаем базу из архива. | + | # Делаем архивную копию и восстанавливаем базу из архива. ВНИМАНИЕ! При восстановлении БД с установленным флагом Commit after each table могут возникать ошибки. В этом случае следует снять указанный флаг и повторить процедуру восстановления базы из архивной копии. |
| − | С | + | С серверной частью все. Остается на клиентских машинах: |
# Найти все файлы gds32.dll и удалить их. | # Найти все файлы gds32.dll и удалить их. | ||
| Строка 34: | Строка 37: | ||
Запускаем. Проверяем работу. | Запускаем. Проверяем работу. | ||
| + | </toggledisplay> | ||
| + | |||
| + | [[Category:Школа системного администратора]] | ||
Текущая версия на 17:40, 9 апреля 2010
UNIQ52759b897fc07b85-toggledisplay-00000000-QINU