GELÖST Migration HSQL nach Postgres / MySQL
Moderator: Moderatoren
GELÖST Migration HSQL nach Postgres / MySQL
Hallo Forum,
ich möchte eine Base Datenbank mit einer wachsenden Anzahl von Tabellen, Abfragen und Makros nach Postgres mirgieren.
Gibt es ein Toturial oder Erfahrungsbericht dazu?
Würde gerne einige "Fettnäpfchen" auf dem Weg umgehen ...
Gruss,
WSO
ich möchte eine Base Datenbank mit einer wachsenden Anzahl von Tabellen, Abfragen und Makros nach Postgres mirgieren.
Gibt es ein Toturial oder Erfahrungsbericht dazu?
Würde gerne einige "Fettnäpfchen" auf dem Weg umgehen ...
Gruss,
WSO
Zuletzt geändert von WSO am Mo, 14.07.2014 23:23, insgesamt 2-mal geändert.
Re: Migration HSQL nach Postgres
Hallo WSO,
im Handbuch habe ich lediglich beschrieben, wie die Anbindung an PostgreSQL funktioniert. Ich habe selbst mit PostgreSQL nur testweise gearbeitet. Da der Funktionsumfang allerdings größer ist als der der eingebauten HSQLDB dürfte es bei Abfragen nicht die großen Probleme geben. Auch die Makroverarbeitung hat ja erst einmal wenig mit Abfragetechnik zu tun.
Gruß
Robert
im Handbuch habe ich lediglich beschrieben, wie die Anbindung an PostgreSQL funktioniert. Ich habe selbst mit PostgreSQL nur testweise gearbeitet. Da der Funktionsumfang allerdings größer ist als der der eingebauten HSQLDB dürfte es bei Abfragen nicht die großen Probleme geben. Auch die Makroverarbeitung hat ja erst einmal wenig mit Abfragetechnik zu tun.
Gruß
Robert
Re: Migration HSQL nach Postgres
Hi Robert,
ist schon klar, was mir fehlt es ein einfacher Weg, die Tabellen, Abfragen, Keys, ... zu portieren.
Habe es mit einer Testversion von RazorSQL probiert, ging aber nicht (die HSQL-DB liess sich war oeffen,
Die Daten waren aber nicht zu sehen ...
Ich wollte ungern die ganzen Datendefinitionen fehlertraechtig von Hand neu eintragen.
Hast du dazu ein Tip?
Gruss,
WSO
ist schon klar, was mir fehlt es ein einfacher Weg, die Tabellen, Abfragen, Keys, ... zu portieren.
Habe es mit einer Testversion von RazorSQL probiert, ging aber nicht (die HSQL-DB liess sich war oeffen,
Die Daten waren aber nicht zu sehen ...
Ich wollte ungern die ganzen Datendefinitionen fehlertraechtig von Hand neu eintragen.
Hast du dazu ein Tip?
Gruss,
WSO
Re: Migration HSQL nach Postgres
Hallo WSO,
warum willst Du die Datenbanken mit einem anderen Programm öffnen? Du hast doch Base. Darin kannst Du beide Datenbanken lesen und beschreiben. Rechter Mausklick über einer Tabelle, kopieren. Rechter Mausklick über dem Tabellencontainer von PostgreSQL, einfügen. Gegebenenfalls genauer auf die Feldtypen achten - siehe Handbuch.
Gruß
Robert
warum willst Du die Datenbanken mit einem anderen Programm öffnen? Du hast doch Base. Darin kannst Du beide Datenbanken lesen und beschreiben. Rechter Mausklick über einer Tabelle, kopieren. Rechter Mausklick über dem Tabellencontainer von PostgreSQL, einfügen. Gegebenenfalls genauer auf die Feldtypen achten - siehe Handbuch.
Gruß
Robert
Re: Migration HSQL nach Postgres
Hallo Robert,
danke sieht einfach aus, komme aber nicht ganz zum Ziel.
Habe jetzt 2 Datenbanken:
eine leere in Postgre: und die HSQLDB mit den zu übertragenden Tabellen: Und jetzt ?
Wie bekomme ich denn den Datenbank-Container zum paste da rein?
Gruss,
WSO
danke sieht einfach aus, komme aber nicht ganz zum Ziel.
Habe jetzt 2 Datenbanken:
eine leere in Postgre: und die HSQLDB mit den zu übertragenden Tabellen: Und jetzt ?
Wie bekomme ich denn den Datenbank-Container zum paste da rein?
Gruss,
WSO
Re: Migration HSQL nach Postgres
Hallo WSO,
die Tabellen in PostgreSQL gehören in das Tabellenverzeichnis "public".
Markiere die Tabelle, die Du kopieren willst. Rechte Maustaste über der Tabelle → kopieren.
Öffne in PostgreSQL den Ordner "public".
Rechte Maustaste auf "public" → Einfügen.
Dann dem Assistenten folgen und die entsprechenden Feldbezeichnungen abgleichen.
Aus dem Handbuch:
Robert
die Tabellen in PostgreSQL gehören in das Tabellenverzeichnis "public".
Markiere die Tabelle, die Du kopieren willst. Rechte Maustaste über der Tabelle → kopieren.
Öffne in PostgreSQL den Ordner "public".
Rechte Maustaste auf "public" → Einfügen.
Dann dem Assistenten folgen und die entsprechenden Feldbezeichnungen abgleichen.
Aus dem Handbuch:
GrußBei der Erstellung von Tabellen kann es vorkommen, dass Base Datentypen vorschlägt, die die
aktuelle PostgreSQL-Installation nicht verarbeiten kann. So werden standardmäßig die Felder mit
dem Feldtyp «Text [character_data]» vorgeschlagen. Den kann PostgreSQL aber nicht verarbeiten.
Eine Änderung auf den Typ «Text [varchar]» schafft hier Abhilfe.
Robert
Re: Migration HSQL nach Postgres
Hi Robert,
soweit verstanden, aber das System verhält sich merkwürdig:
Eine neue Tabelle läßt sich problemlos im Verzeichnis "public" manuell anlegen.
Per copy/paste startet ein Assistent, die Feldtypen lassen sich anpassen,
aber die einzufügende Tabelle wird nicht gespeichert.
Das passiert unabhängig davon, ob ich die einzelnen Schritte des Assistenten durchlaufe, oder
direkt auf "fertigstellen" klicke.
Guss,
WSO
soweit verstanden, aber das System verhält sich merkwürdig:
Eine neue Tabelle läßt sich problemlos im Verzeichnis "public" manuell anlegen.
Per copy/paste startet ein Assistent, die Feldtypen lassen sich anpassen,
aber die einzufügende Tabelle wird nicht gespeichert.
Das passiert unabhängig davon, ob ich die einzelnen Schritte des Assistenten durchlaufe, oder
direkt auf "fertigstellen" klicke.
Guss,
WSO
Re: Migration HSQL nach Postgres
Hallo WSO,
Du hast also erst einmal testweise probiert, ob sich überhaupt Tabellen in "public" anlegen lassen? Das klappt mit Erfolg, dort lassen sich auch Daten eingeben? So verstehe ich jedenfalls
Ich habe gerade auch noch einmal probiert und erst einmal gestaunt. Du musst vor den vorgeschlagenen Tabellennamen ein "public." einfügen. Dann kommt die Tabelle auch in dem Unterordner "public" zum Vorschein.
Gruß
Robert
Du hast also erst einmal testweise probiert, ob sich überhaupt Tabellen in "public" anlegen lassen? Das klappt mit Erfolg, dort lassen sich auch Daten eingeben? So verstehe ich jedenfalls
Jetzt versuchst Du die gleiche Methode mit einer kopierten Tabelle und die Kopie wird ohne Kommentar nicht ausgeführt?Eine neue Tabelle läßt sich problemlos im Verzeichnis "public" manuell anlegen.
Ich habe gerade auch noch einmal probiert und erst einmal gestaunt. Du musst vor den vorgeschlagenen Tabellennamen ein "public." einfügen. Dann kommt die Tabelle auch in dem Unterordner "public" zum Vorschein.
Gruß
Robert
Re: Migration HSQL nach Postgres
Hi Robert,
genau so
Danke, mal wieder ne Hürde weiter ...
Dann lege ich mal los.
Was muss alles nach PostgeSql rüber:
- Tabellen, klar
- Views ?
- Queries ?
Sind Anpassungen an der SQL-Syntax in den Makos notwendig?
Gruss,
WSO
genau so

Danke, mal wieder ne Hürde weiter ...
Dann lege ich mal los.
Was muss alles nach PostgeSql rüber:
- Tabellen, klar
- Views ?
- Queries ?
Sind Anpassungen an der SQL-Syntax in den Makos notwendig?
Gruss,
WSO
Re: Migration HSQL nach Postgres
Hallo WSO,
steht sondern
Mit der Aliaszuweisung machst Du es möglich, dass Du nicht bei allen Feldern neben dem Tabellennamen auch "public." hinzufügen musst.
Ich würde das folgendermaßen regeln:
SQL-Code der Ansicht kopieren, in der PostgreSQL-Datenbank "Abfrage in SQL-Ansicht erstellen" wählen und dann die notwendigen Änderungen bei der Tabellenbezeichnung durchführen. Fange mit den Ansichten an, und dort dann auch mit einer Ansicht, die sich nicht auch noch auf eine andere Ansicht bezieht.
Gruß
Robert
Du musst die Ansichten und Abfragen anpassen. Allein schon in dem Punkt, dass dort nirgendwoWSO hat geschrieben: Was muss alles nach PostgeSql rüber:
- Tabellen, klar
- Views ?
- Queries ?
Sind Anpassungen an der SQL-Syntax in den Makos notwendig?
Code: Alles auswählen
FROM "Tabelle" ...
Code: Alles auswählen
FROM "public"."Tabelle" AS "Tabelle" ...
Ich würde das folgendermaßen regeln:
SQL-Code der Ansicht kopieren, in der PostgreSQL-Datenbank "Abfrage in SQL-Ansicht erstellen" wählen und dann die notwendigen Änderungen bei der Tabellenbezeichnung durchführen. Fange mit den Ansichten an, und dort dann auch mit einer Ansicht, die sich nicht auch noch auf eine andere Ansicht bezieht.
Gruß
Robert
Re: Migration HSQL nach Postgres
ups, das ist ja noch richtig Arbeit.
Ist der Aufwand bei Verwendung von MySQL auch so gross?
Könnte auch auf MySQL gehen.
Gruss,
WSO
Ist der Aufwand bei Verwendung von MySQL auch so gross?
Könnte auch auf MySQL gehen.
Gruss,
WSO
Re: Migration HSQL nach Postgres
Hallo WSO,
ich kann in MySQL nicht mit dem direkten Treiber testen - habe dafür keinen Treiber zur Verfügung. Unter JDBC-Verbindung ist dort aber auf jeden Fall mehr an Eingriffen notwendig als bei PostgreSQL.
Aus
wird dort
Alle Feldnamen werden statt in doppelten Anführungszeichen in «`» eingefasst.
Das scheint mir dann doch deutlich mehr Aufwand zu sein.
Gruß
Robert
ich kann in MySQL nicht mit dem direkten Treiber testen - habe dafür keinen Treiber zur Verfügung. Unter JDBC-Verbindung ist dort aber auf jeden Fall mehr an Eingriffen notwendig als bei PostgreSQL.
Aus
Code: Alles auswählen
FROM "Tabelle" ...
Code: Alles auswählen
FROM `Datenbank`.`Tabelle` AS `Tabelle` ...
Das scheint mir dann doch deutlich mehr Aufwand zu sein.
Gruß
Robert
Re: Migration HSQL nach Postgres
Hi Robert,
ich teste gerade die direkte Verbindung zu MySql und die Portierung meiner Anwendung.
Der Aufwand ist geringer als gedacht, insbesondere was die Makros betrifft.
Tabellen können der drag and drop übertragen werden, wobei im Namen auch der Datenbankname vorangestellt werden muss.
Die Funktion hat noch einige "Macken" bei der Feldtypzuordnung (timestamp, boolean und varchar > 255).
Views müssen von Hand neu angelegt werden, wobei die SQL-Syntax per copy und paste übernommen werden kann.
Queries können ohne weiteren manuellen Eingriff per drag and drop kopiert werden.
Formulare: per drag and drop kopieren.
Die Datenquellen (sofern es Tabellen sind) müssen neu zugeordnet werden. (dbname vorangestellt)
Bezieht das Formular die Daten aus queries oder views sind keine Anpassungen erforderlich.
Makros: Die SQL-Syntax ist wesentlich einfacher als vermutet:
Es ist nicht erforderlich auf den Namen der Datenbak zu referenzieren und auf das "gefuddel" mit den Anführungszeichen kann gänzlich verzichtet werden, z.B.:
funktioniert einwandfrei!
Gruss,
Wolfram
ich teste gerade die direkte Verbindung zu MySql und die Portierung meiner Anwendung.
Der Aufwand ist geringer als gedacht, insbesondere was die Makros betrifft.
Tabellen können der drag and drop übertragen werden, wobei im Namen auch der Datenbankname vorangestellt werden muss.
Die Funktion hat noch einige "Macken" bei der Feldtypzuordnung (timestamp, boolean und varchar > 255).
Views müssen von Hand neu angelegt werden, wobei die SQL-Syntax per copy und paste übernommen werden kann.
Queries können ohne weiteren manuellen Eingriff per drag and drop kopiert werden.
Formulare: per drag and drop kopieren.
Die Datenquellen (sofern es Tabellen sind) müssen neu zugeordnet werden. (dbname vorangestellt)
Bezieht das Formular die Daten aus queries oder views sind keine Anpassungen erforderlich.
Makros: Die SQL-Syntax ist wesentlich einfacher als vermutet:
Es ist nicht erforderlich auf den Namen der Datenbak zu referenzieren und auf das "gefuddel" mit den Anführungszeichen kann gänzlich verzichtet werden, z.B.:
Code: Alles auswählen
stSql_ZAE = "SELECT * FROM tZaehler WHERE zae_id = 0 "
stSql_ZAEUPD = "UPDATE tZaehler SET zae_rechnung = " & iZaehler
Gruss,
Wolfram
Re: GELÖST Migration HSQL nach Postgres / MySQL
Hallo Wolfram,
welche direkte Verbindung nutzt Du? Du hast die Version LO 4.2, richtig? Wenn ich auf die Extensions-Liste sehe, dann kann ich dort nur einen Connector für Linux rpm und die Version 4.0 entdecken:
http://extensions.libreoffice.org/exten ... leases/1.0
Gruß
Robert
welche direkte Verbindung nutzt Du? Du hast die Version LO 4.2, richtig? Wenn ich auf die Extensions-Liste sehe, dann kann ich dort nur einen Connector für Linux rpm und die Version 4.0 entdecken:
http://extensions.libreoffice.org/exten ... leases/1.0
Gruß
Robert
Re: GELÖST Migration HSQL nach Postgres / MySQL
Hi Robert,
ja ich nutze LO 4.2 (win 7) mit dem Mysql-Connector 1.0.2.
Ich erinnere mich nicht, wo ich das Plugin runtergeladen habe.
Hier ist es:
https://www.dropbox.com/s/ss98o67jbvt2y ... or-ooo.oxt
Funktioniert bislang gut, Performance ist super.
Das Problem mit dem ungültigen Feldnamen beim kopieren der Tabellen hat sich geklärt:
In der HSQL-Tabelle hatte ein Feldname als letztes Zeichen ein blank.
War unter HSQL nie aufgefallen, MySql hat das verständlicherweise nicht gefallen.
Gruss,
Wolfram
ja ich nutze LO 4.2 (win 7) mit dem Mysql-Connector 1.0.2.
Ich erinnere mich nicht, wo ich das Plugin runtergeladen habe.
Hier ist es:
https://www.dropbox.com/s/ss98o67jbvt2y ... or-ooo.oxt
Funktioniert bislang gut, Performance ist super.
Das Problem mit dem ungültigen Feldnamen beim kopieren der Tabellen hat sich geklärt:
In der HSQL-Tabelle hatte ein Feldname als letztes Zeichen ein blank.
War unter HSQL nie aufgefallen, MySql hat das verständlicherweise nicht gefallen.
Gruss,
Wolfram