Was ist TreeDB?

TreeDB ist ein modulares Framework, mit dem einfach und schnell Datenbanken für das Intranet/Internet entwickelt werden können. Das Framework bietet dazu die nötigten Funktionen an: Modellierung, Suche, Darstellung und Verarbeitung der Daten. Zusätzlich wird jegliche Art von Code in der Datenbank gespeichert, um eine Synthese aus Datenbank und Applikation zu erreichen.

Diese Installationsanleitung wurde an Hand eines neu aufgesetzten Ubuntu 15.10 Desktop (Wily Werewolf) verfasst. Folgende Konfigurationsvarianten der TreeDB werden in dieser Anleitung erörtert:

  • verschiedene Persistenz-Frameworks: Hibernate, JPA/EclipseLink und JPA/ObjectDB
  •  folgende Datenbanken: MySQL, PostgreSQL oder H2

 

Der Beitrag beschreibt die Installation der TreeDB mit MySQL als Datenbank und JPA/Eclipselink als Persistenz-Framework. Die alternativen Konfigurationen werden im Anhang beschrieben.

Zuerst müssen alle notwendigen Softwarepakete installiert werden:

sudo apt-get install openjdk-8-jdk tomcat8 mysql-server

Während der Installation werden Sie seitens der MySQL-Datenbank aufgefordert, ein root-Passwort zu vergeben. Dies ist nicht verpflichtend, wird aber empfohlen.

Nach der Installation ändern Sie bitte die Datei mysql.conf.

sudo nano /etc/mysql/conf.d/mysql.cnf

Fügen Sie bitte folgenden Parameter hinzu:

Dann starten Sie bitte den mysql-Server neu:

sudo service mysql restart

In dieser Beispielkonfiguration werden die grundlegenden Datenbankparameter wie folgt festgelegt:

Datenbankname: treedb
Benutzer: tree
Passwort: db

Melden Sie sich an der MySQL-Datenbank an:

mysql -uroot -p

und setzen Sie folgende Befehlssequenz ab, um die Datenbank und den dazugehörigen Benutzer anzulegen:

CREATE DATABASE treedb  CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'tree'@'localhost' IDENTIFIED BY 'db';
GRANT ALL PRIVILEGES ON treedb.* TO 'tree'@'localhost' IDENTIFIED BY 'db' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Mit quit; verlassen Sie die SQL-Konsole wieder.

 

Nun erhöhen Sie das Speicherlimit der Tomcat-Umgebung auf mindestens 1GB.

sudo nano /etc/default/tomcat8

Als letzten Schritt installieren Sie die TreeDB in der Tomcat-Umgebung. Wechseln Sie zuerst in das Applikationsverzeichnis des Tomcat-Servers:

cd /var/lib/tomcat8/webapps

und laden Sie per

sudo wget -O TreeDB.war http://treedb.at/data/db/TreeDBeclipseLink.war

die JPA/EclipseLink Version der TreeDB unter gleichzeitiger Umbenennung der Zieldatei auf TreeDB.war herunter.

Dann warten Sie bitte einige Sekunden ab; der als Hintergrund-Dienst laufende Tomcat-Server entpackt automatisch die Datei TreeDB.war in ein gleichnamiges Verzeichnis TreeDB.

Nun konfigurieren Sie die TreeDB bezüglich der mysql-Datenbank Anbindung, indem Sie

sudo nano /var/lib/tomcat8/webapps/TreeDB/WEB-INF/web.xml

den Parameter database wie folgt festlegen:

Nun vergeben Sie dem admin Benutzer ein Password, um die TreeDB später über die Weboberfläche konfigurieren zu können.

Als letzten Schritt starten Sie den Tomact-Server neu, um alle Änderungen zu übernehmen.

sudo service tomcat8 restart

Mit http://localhost:8080/TreedDB sollte sich nach erfolgreicher Konfiguration die Weboberfläche der TreeDB wie folgt präsentieren:

Unter folgenden Links finden Sie weiterführende Informationen, wie Sie Datenbanken und JavaScript-Bibliotheken nachinstallieren können.

Als Abschluss installieren wir noch das Paket wkhtmltopdf, um Datensätze seitens der TreeDB in ein PDF-Dokument umwandeln zu können.

sudo apt-get install wkhtmltopdf

In den Einstellungen der TreeDB muss noch der Dateipfad des Konvertierungstools eingetragen werden, um dieses nutzen zu können.

 

Anhang: Alternative Installationsvarianten

Alle Änderungen beziehen sich entweder auf das Persistenz-Framework oder die Datenbank/Tomcat.

Hibernate

Mit Hibernate als Persistenz-Framework ändert sich der Parameter database der web.xml Datei des Tomcat-Servers wie folgt:

ObjectDB

Legen Sie ein Verzeichnis für die Daten mit der entsprechenden Berechtigung an:

sudo mkdir /var/lib/treedb
sudo chown tomcat8:tomcat8 /var/lib/treedb

Der Parameter database der web.xml Datei des Tomcat-Servers ändert sich für die ObjectDB wie folgt:

Hinweis: Da die ObjectDB keine SQL-Datenbank ist, ist die Datenbank URL eine Pfadangabe und kein JDBC-String!

Postgres

Installation der postgres-Datenbank:

sudo apt-get install postgresql
sudo -u postgres psql
postgres=# CREATE USER tree WITH PASSWORD 'db';
postgres=# CREATE DATABASE treedb OWNER tree;
 \q

Entfernen Sie in der Konfigurationsdatei das Kommentarzeichen # vor dem Eintrag listen_addresses

sudo nano /etc/postgresql/9.4/main/postgres.conf

und starten Sie die postgres-Datenbank neu:

sudo service postgresql restart

Der Parameter database der web.xml Datei des Tomcat-Servers ändert sich für die postgres-Datenbank wie folgt:

H2-Datenbank

Legen Sie ein Verzeichnis für die Datenbank mit der entsprechenden Berechtigung an:

sudo mkdir /var/lib/treedb
sudo chown tomcat8:tomcat8 /var/lib/treedb

Der Parameter database der web.xml Datei des Tomcat-Servers ändert sich für die H2-Datenbank wie folgt: