Verfügbar seit Version 4.0.229.
Das easydb Link Modul erlaubt den Daten- und Design-Import von anderen easydbs. Dazu muss das Modul auf beiden easydbs installiert und im Creator im Stringtool-Key LOAD_ADDITIONAL_MODULES eingetragen sein.
Die importierende easydb hat Zugriff auf:
Die exportierende easydb kann unter folgender URL erreicht werden:
http://<user>:<password>@<easydb>/easydblink/info
Diese Seite gibt allgemeine Informationen über den easydb Link aus. Die Authentifizierung erfolgt über HTTP-Authenticate.
Für die exportierende easydb muss ein Benutzer eingerichtet werden, der das EASYDBLINK_EXPORT – Recht zugewiesen bekommt. Über diesen Benutzer greift die importierende easydb auf die Design- und Daten der exportierenden easydb zu.
Dabei gibt es kein weiteres Rechte-Management, d.h. es werden immer alle freigegebenen (die Option Allow Export muss im Creator gesetzt sein) Masks & Dbmodel Informationen exportiert.
In der importierenden easydb werden folgende Config-Variablen gesetzt:
Angabe der URL der exportierenden easydb zum Import der Design-Information (Masks & Tabellen-Definitionen). Diese besteht immer aus der URL für die easydb und einem angehängten "easydblink".
EASYDBLINK_PULL_DESIGN=server1[,server2][,server3]...
Wenn die easydb beispielsweise unter http://easydb.demo.de erreichbar ist, so ist die PULL-URL
http://<user>:<password>@easydb.demo.de/easydblink
Angabe der URL wie bei EASYDB_PULL_DESIGN zum Importieren von Daten aus freigegebenen Tabellen der exportierenden easydb.
EASYDBLINK_PULL_DATA=server1[,server2][,server3]...
Im easydb Creator kann unter Tools das Werkzeug Pull Design benutzt werden.
In ezadmin kann manuell easydb link sync benutzt werden (dafür reicht das ADMIN – System-Recht).
Zur Automatisierung kann per Cronjob auf der lokalen easydb eingerichtet werden.
wget -O - http://<user>:<password>@<easydb-url>/easydblink/pull > logfile
Um diese URL freizuschalten, muss das Systemrecht EASYDBLINK_PULL für den <user> eingerichtet sein.
Alternativ kann das ezadmin CLI verwendet werden:
/opt/easydb/4.0/tools/ezadmin.php \
-u http://<user>:<password>@<easydb-url> \
-- ezadmin ezadmin_easydblink:easydblink_pull_data
Vorteil gegenüber o.g. Lösung ist, dass außer zum Holen der lokalen Konfiguration keine HTTP-Verbindung zur lokalen easydb verwendet wird. Dadurch wird der lokale Webserver nicht unnötig belastet, während der Import läuft.
Bei initialen Daten-Importen oder größeren Updates für die ein Schema-Update notwendig ist, blockiert der Daten-Import alle anderen Zugriffe auf die easydb. Die easydb reagiert für die anderen Zugriffe mit einem Timeout. Dieser Timeout kann über die Config-Variable LOCK_ACQUIRE_TIMEOUT in Sekunden angegeben werden.
easydblink benötigt in beiden Datenbanken (Quelle und Ziel) das ‘hstore’ modul.
Zum Installieren muss in der Datenbank via psql das Kommando:
\i /usr/share/postgresql/8.4/contrib/hstore-new.sql
\i /usr/share/postgresql/9.n/contrib/hstore.sql
CREATE EXTENSION hstore;
ausgeführt werden.