Съвет Създайте преносими изгледи на база данни с помощта на пакета MDB2_Schema от хранилището PEAR

Прехвърляне на обекти на база данни между различни СУБД с помощта на PHP

база

Серия съдържание:

Това съдържание е част 1 от # серия статии: Съвет

Това съдържание е част от поредицата: съвети

Следете за още статии от тази поредица.

Ако имате опит в работата с различни бази данни на различни платформи, тогава най-вероятно сте запознати с трудностите, свързани с пренасянето на приложения от една система за управление на релационни бази данни (RDBMS) в друга. Различните RDBMS не само поддържат различни подмножества на стандартите SQL-92 и SQL-99, но и често използват свои собствени SQL разширения и разширения.

Преминаването към нова RDBMS изисква внимателен анализ на целия код на приложението за използване на нестандартни SQL възможности и функции, специфични за конкретна RDBMS. Такива части от приложението трябва да бъдат пренаписани, като се вземат предвид възможностите на новата RDBMS. Понякога това е лесно да се направи, например, ако трябва само да коригирате типовете данни за полетата, но може да бъде много трудно, ако трябва да пренапишете SQL заявките и съхранените процедури във формат, по-подходящ за новия механизъм на базата данни . Освен това може да се наложи да промените настройките на конфигурацията и променливите на базата данни, за да оптимизирате работата в рамките на новата RDBMS.

MDB2_Schema - PHP пакет от хранилището PEAR (PHP Extension and Application Repository) - е предназначен да освободи частично разработчиците от рутинната работа по пренасяне на приложение между RDBMS. Пакетът предоставя специален API, който ви позволява да запазвате обекти на база данни и записи в неутрален XML формат и след това, въз основа на това XML представяне, да пресъздавате базата данни и записи в нов RDBMS. MDB2_Schema поддържа най-популярните RDBMS и следователно осигурява прост и ефективен начин за бързо прехвърляне на данни към нова система.

Пакетът MDB2_Schema се поддържа от Helgi Pormar, Igor Feghali и David Coallier. Издава се под лиценза BSD и изисква стартиране на PHP версия 4.2.0 или по-нова. Най-лесният начин да инсталирате пакета е да използвате автоматичния инсталатор на PEAR, който се доставя с PHP. За да инсталирате, изпълнете следната команда от командния ред:

черупка> круша инсталирайте MDB2_Schema

Инсталационната програма ще се свърже със сървъра за пакети PEAR, ще изтегли пакета и ще го инсталира на подходящо място на диска. Тази статия използва MDB2_Schema V. 0.7.2.

Можете също да инсталирате пакета ръчно. За да направите това, отидете на началната страница на проекта, изтеглете архива с изходния код и го разархивирайте до желаното място на диска. Този процес предполага запознаване с организационната структура на пакетите PEAR.

В тази статия ще демонстрираме използването на пакета MDB2_Schema, като използваме примера за пренасяне на световната база данни от дистрибуцията MySQL към PostgreSQL. Самата база данни съдържа различни свързани таблици, пълни с данни за градове и държави. За да работи примерът правилно, трябва да инсталирате MySQL и PostgreSQL, както и световната база данни. За инструкции за инсталиране вижте Ресурси.

Работа чрез графичен интерфейс

Най-лесният начин да започнете с MDB2_Schema е да използвате скрипта example.php, включен в пакета. Този скрипт осигурява уеб интерфейс за създаване, импортиране и модифициране на XML описание на база данни за конкретна СУБД. За да инсталирате скрипта, просто го копирайте във всяка директория в основната директория на вашия уеб сървър.

Интерфейсът на формата е показан на Фигура 1.

Фигура 1. Уеб интерфейс за експортиране и импортиране на XML представяне на базата данни

преносими

преносими

За да експортирате описанието на световната база данни от дистрибуцията на MySQL в XML, въведете необходимите параметри за достъп за сървъра MySQL в полетата на формуляра и щракнете върху OK. Като правило, за опция Изхвърлете стойността трябва да бъде избрана всичко. Освен това има смисъл да активирате режима за отстраняване на грешки (опция Отстраняване на грешки).

Попълненият формуляр е показан на фигура 2.

Фигура 2. Попълнен уеб формуляр

изгледи

съвет

След това скриптът ще установи връзка с базата данни MySQL, като използва въведените параметри за достъп, ще генерира описания на обекти и данни в XML форма и ще ги запише във файл на диск. Фрагмент от такъв файл е показан в Листинг 1.

Листинг 1. Пример за описване на база данни MySQL като XML

Тук е подходящо кратко описание на формата, използван от MDB2_Schema за създаване на XML представления. Всяка таблица в базата данни е описана от елемент

  • , съдържащи описания на полета и индекси.
  • , съдържащи данни от таблица. Всеки запис в таблицата е представен от елемент в елемент .