easydb Link

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:

  • alle Creator-Masks und Creator-Dbmodel Informationen, die Allow Export aktiviert haben.
  • alle Daten, die in Tabellen geschrieben werden, die Enable SQL Changelog aktiviert haben.

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:

EASYDBLINK_PULL_DESIGN

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

EASYDBLINK_PULL_DATA

Angabe der URL wie bei EASYDB_PULL_DESIGN zum Importieren von Daten aus freigegebenen Tabellen der exportierenden easydb.

EASYDBLINK_PULL_DATA=server1[,server2][,server3]...

Benutzung

Design importieren

Im easydb Creator kann unter Tools das Werkzeug Pull Design benutzt werden.

Daten importieren

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.

Vorbereitung

easydblink benötigt in beiden Datenbanken (Quelle und Ziel) das ‘hstore’ modul.

Zum Installieren muss in der Datenbank via psql das Kommando:

PostgreSQL 8.4

\i /usr/share/postgresql/8.4/contrib/hstore-new.sql

PostgreSQL 9.0

\i /usr/share/postgresql/9.n/contrib/hstore.sql

PostgreSQL 9.1

CREATE EXTENSION hstore;

ausgeführt werden.