Wie kann man direkt auf die SQL-Datenbank zugreifen?

Fragen zur Verwendung des OpenEstate-ImmoTools
Forum rules
Bitte beachten Sie die allgemeinen Forenregeln, bevor Sie sich an der Diskussion beteiligen.

Wie kann man direkt auf die SQL-Datenbank zugreifen?

Postby Adami » Mon 15. Feb 2016, 19:23

Hi,

Ich verwende Immotool 1.0 in der Beta Version auf dem Mac.
Immotool verwendet ja SQL. Sehr gerne würde ich z.B. mit Terminal, php oder mit Sequel Pro direkt auf die Datenbank von immotool zugreifen können. So könnte ich einzelne Einträge schneller Ändern und ein Script schreiben um einen Datenabgleich zu meiner Homepage über ssh zu automatisieren.
Wie sind denn die jeweiligen Zugriffseinstellungen zur SQL-Datenbank, bzw. wo kann ich die für mich individuell ermitteln?

- Host
- Username
- pwd
- Datenbankname
- Port

Schon vorab herzlichen Dank!
Last edited by Andreas Rudolph on Tue 16. Feb 2016, 10:44, edited 1 time in total.
Reason: Betreff wurde etwas präzisiert
Adami
 
Posts: 2
Joined: Mon 15. Feb 2016, 19:13

Re: Wie kann man direkt auf die SQL-Datenbank zugreifen?

Postby Andreas Rudolph » Tue 16. Feb 2016, 11:16

Hallo Adami.

Adami wrote:Immotool verwendet ja SQL.

Das ist korrekt (zumindest ab den 1.0-beta-Versionen). Aber bedenke bitte, dass SQL nicht gleich SQL ist. Wenn ich es richtig sehe, unterstützt Sequel Pro z.B. nur MySQL - im ImmoTool wird hingegen HSQLDB verwendet. Vermutlich wird dir das Programm daher nicht weiterhelfen können. Aber es gibt diverse andere Programme wie z.B. SquirrelSQL, mit denen nahezu jede Datenbank administriert werden kann, für die ein JDBC-Treiber zur Verfügung steht.

Adami wrote:So könnte ich einzelne Einträge schneller Ändern ...

Ich möchte hier noch anmerken, dass du eigene SQL-Befehle auch direkt aus dem ImmoTool oder AdminTool heraus ausführen kannst. Es ist nicht zwingend eine externe Anwendung nötig - auch wenn externe Anwendungen hier und da sicherlich etwas komfortabler sind.

Desweiteren besteht natürlich das Risiko, dass du dir mit eigenen SQL-Befehlen die Datenbank kaputt machst. Regelmäßige Sicherungen sind hier umso mehr angesagt. Im Fehlerfall können wir bei solchen Vorgehensweisen natürlich nur bedingt Support leisten.

Adami wrote:... und ein Script schreiben um einen Datenabgleich zu meiner Homepage über ssh zu automatisieren.

Wenn du den Exportvorgang nicht komplett selbst programmieren willst, wird dir ein bloßer Zugriff auf die Datenbank hier nicht wirklich helfen. Die Funktionalitäten für den Exportvorgang (Schnittstellen, Formate, Übertragungen, etc.) sind ja nicht Bestandteil der Datenbank sondern liegen als kompilierter Java-Code vor. Diesen kannst du ohne größere eigene Programmierungen erst mal nicht selbst ausführen / anstoßen.

Für die weitere Entwicklung des Programms ist eine Skripting-Funktionalität geplant. Man soll zukünftig eigene Skripte im Programm hinterlegen können - über die man dann auch auf die Funktionen des ImmoTools zugreifen kann. So wäre dann zukünftig z.B. ein automatischer Export denkbar, ohne dass allzu viele eigene Programmierungen nötig sind.

Alternativ zur Skripting-Funktionalität besteht auch die Möglichkeit, dass du ein eigenes Addon für das ImmoTool entwickelst, welches sich direkt in das Programm integriert und gewisse Automatismen anbietet.

Adami wrote:Wie sind denn die jeweiligen Zugriffseinstellungen zur SQL-Datenbank, bzw. wo kann ich die für mich individuell ermitteln?

Der Zugriff auf die Datenbank unterscheidet sich von der Projektart.

(a) Bei Einzelplatz-Projekten wird die Datenbank innerhalb des Programms gestartet und ausgeführt. Bei HSQLDB nennt sich das ganze "in-process database" oder "embedded database" (siehe hier). Bei der Einrichtung in SquirrelSQL müsste man hier eine JDBC-URL eintragen, die ungefähr wie folgt aussieht:

jdbc:hsqldb:file:/pfad/zum/projekt/data/immotool

bzw. unter Windows-Systemen

jdbc:hsqldb:file:c:\pfad\zum\projekt\data\immotool

Der genaue Pfad zum Projekt müsste natürlich angepasst werden. Der Benutzername für den Zugriff lautet "SA" - als Passwort wird ein leerer Text verwendet.

Hier ist anzumerken, dass eine Datenbank nicht gleichzeitig vom ImmoTool und einem Administrationsprogramm wie SquirrelSQL geöffnet werden kann. Das erste Programm, dass ich mit der Datenbank verbindet, sperrt den Zugriff auf die Datenbank für andere Programme.

(b) Bei Mehrplatz-Projekten wird die Datenbank auf einem HSQLDB-Server betrieben (siehe server mode). Bei der Einrichtung in SquirrelSQL müsste man hier eine JDBC-URL eintragen, die ungefähr wie folgt aussieht:

jdbc:hsqldb:hsql://$HOST:$PORT/$ALIAS

An Stelle von $HOST müsste die IP-Adresse oder der Hostname des HSQLDB-Servers eingetragen werden. An Stelle von $PORT ist die konfigurierte Port-Nr einzutragen (standardmäßig 9001). An Stelle von $ALIAS ist der konfigurierte Name der Datenbank einzutragen (standardmäßig "immotool").

Als Benutzername kann "SA" (oder ggf. ein anderer eingerichteter Benutzer) verwendet werden. Es wird das gleiche Passwort verwendet, mit dem sich auch der Benutzer im ImmoTool selbst einloggt.

In diesem Falle ist auch ein zeitgleicher Zugriff vom ImmoTool und dem Administrationsprogramm auf die HSQL-Datenbank möglich.


Nebenbei: Auf dieser Seite sind noch ein paar weitere Anmerkungen zu den JDBC-URL's in HSQLDB dokumentiert.


PS: Es gibt natürlich auch andere Alternativen zu SquirrelSQL - z.B. SQL Workbench, iSQL-Viewer, SQL Admin oder HenPlus sehen auch interessant aus.
Mit freundlichem Gruß / Yours sincerely
Andreas Rudolph
User avatar
Andreas Rudolph
 
Posts: 3737
Joined: Tue 16. Feb 2010, 21:48
Location: Berlin, Germany

Re: Wie kann man direkt auf die SQL-Datenbank zugreifen?

Postby Adami » Fri 19. Feb 2016, 11:36

Hallo Andreas,

vielen Dank für die ausführliche Antwort. Das hilft auf jeden Fall dabei weiter zu testen, ob sich die Arbeitsabläufe optimieren lassen.
MySQL wäre natürlich leichter zu handeln gewesen. Aber sehen wir mal.

In jedem Fall herzlichen Dank!
Adami
 
Posts: 2
Joined: Mon 15. Feb 2016, 19:13


Return to Allgemeine Fragen

Who is online

Users browsing this forum: No registered users and 1 guest

cron