GELÖST Migration HSQL nach Postgres / MySQL

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

GELÖST Migration HSQL nach Postgres / MySQL

Beitrag von WSO »

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
Zuletzt geändert von WSO am Mo, 14.07.2014 23:23, insgesamt 2-mal geändert.
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

Hallo Robert,
danke sieht einfach aus, komme aber nicht ganz zum Ziel.
Habe jetzt 2 Datenbanken:

eine leere in Postgre:
pic0.png
pic0.png (59.05 KiB) 6058 mal betrachtet
und die HSQLDB mit den zu übertragenden Tabellen:
pic1.png
pic1.png (81.16 KiB) 6058 mal betrachtet
Und jetzt ?
Wie bekomme ich denn den Datenbank-Container zum paste da rein?

Gruss,
WSO
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

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:
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.
Gruß

Robert
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

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
Eine neue Tabelle läßt sich problemlos im Verzeichnis "public" manuell anlegen.
Jetzt versuchst Du die gleiche Methode mit einer kopierten Tabelle und die Kopie wird ohne Kommentar nicht ausgeführt?
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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

Hi Robert,
genau so :D
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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

Hallo WSO,
WSO hat geschrieben: Was muss alles nach PostgeSql rüber:
- Tabellen, klar
- Views ?
- Queries ?

Sind Anpassungen an der SQL-Syntax in den Makos notwendig?
Du musst die Ansichten und Abfragen anpassen. Allein schon in dem Punkt, dass dort nirgendwo

Code: Alles auswählen

FROM "Tabelle" ...
steht sondern

Code: Alles auswählen

FROM "public"."Tabelle" AS "Tabelle" ...
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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Migration HSQL nach Postgres

Beitrag von RobertG »

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

Code: Alles auswählen

FROM "Tabelle" ...
wird dort

Code: Alles auswählen

FROM `Datenbank`.`Tabelle` AS `Tabelle` ...
Alle Feldnamen werden statt in doppelten Anführungszeichen in «`» eingefasst.
Das scheint mir dann doch deutlich mehr Aufwand zu sein.

Gruß

Robert
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Migration HSQL nach Postgres

Beitrag von WSO »

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.:

Code: Alles auswählen

stSql_ZAE = "SELECT * FROM  tZaehler WHERE zae_id = 0 "
stSql_ZAEUPD = "UPDATE  tZaehler SET zae_rechnung = " & iZaehler
funktioniert einwandfrei!
Gruss,
Wolfram
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: GELÖST Migration HSQL nach Postgres / MySQL

Beitrag von RobertG »

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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: GELÖST Migration HSQL nach Postgres / MySQL

Beitrag von WSO »

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
Antworten