Hibiscus: Migratio von embedded Datenbank zu MySQL

 
andreash
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 40
Dabei seit: 04 / 2009
Betreff:

Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 01.03.2010 - 10:06 Uhr  ·  #1
Hallo,

ich habe seit einigen Monaten Hibiscus im Einsatz, und würde das ganze jetzt gerne auf MySQL-Beine stellen. Wie kann ich die Daten aus der embedded-Datenbank nach MySQL migrieren und Hibiscus dann so einstellen, dass es dann mit MySQL arbeitet?

Dank & Gruß aus Bremen,

Andreas.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 01.03.2010 - 10:58 Uhr  ·  #2
Unter Plugins->Hibiscus->Erweitert findest du eine Option "Diagnose-Backup erstellen". Hierbei wird ein XML-Dump der Datenbank erzeugt. Konfiguriere Hibiscus anschliessend so, dass es MySQL verwendet und importiere danach den XML-Dump wieder mittels Plugins->Hibiscus->Erweitert->Diagnose-Backup importieren.
kcp
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 11
Dabei seit: 06 / 2009
Betreff:

Probleme beim Import

 · 
Gepostet: 06.03.2010 - 15:52 Uhr  ·  #3
Hi Willow,

ich habe das mal probiert. Leider kracht es beim Import. :-(

Ich denke die Einträge mit id=0 im xml könnten evtl. das Problem sein. Beim Insert in die Mysql werden die IDs zu Werten größer 0.

Ich habe bspw. 3 Konten, die im xml die IDs 0, 1 und 2 haben. Nach dem Insert haben die Konten mit den IDs 1 und 2 ihre IDs behalten. Das Konto mit ID 0 hat aber eine 3 bekommen. Als Folge schlägt das Insert der Umsätze fehl, weil die Key-Beziehung nicht stimmt.

Bei den Adressen hat es mit einem Duplicate-Key geknallt, weil der Addresseintrag mit ID 0 beim Insert eine neue ID bekommen hat. Leider hat ein anderer Adresseintrag die gleiche ID.

Getestet habe ich das unter Linux mit Mysql 5.1.42.

Jemand ähnliche Erfahrungen gemacht?

Grüße
Charly
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 07.03.2010 - 23:47 Uhr  ·  #4
Ja, das stimmt. MySQL erlaubt bei Primary-Keys nur Werte > 0. Da bleibt dir wohl nichts anderes uebrig, als die XML-Datei in einem Texteditor zu oeffnen und die "0" ueberall gegen eine noch freie ID (z.Bsp. 3) zu ersetzen.
joti2
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 4
Dabei seit: 01 / 2012
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 14:26 Uhr  ·  #5
Hallo Olaf/Hibiscus,

spricht etwas dagegen Hibiscus so zu verändern, dass es auch bei der Embedded-DB Primärschlüssel ab 1 verwendet? Das würde die Migration ja regelmäßig einfacher und supportfreier ermöglichen?
Soll dafür ein Bugreport aufgemacht werden?

Ansonsten will ich das wohl mal versuchen.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 14:28 Uhr  ·  #6
Zitat geschrieben von joti2
spricht etwas dagegen Hibiscus so zu verändern, dass es auch bei der Embedded-DB Primärschlüssel ab 1 verwendet?


Ja. Ich weiss nicht, ob das ueberhaupt geht. Die IDs werden von der H2-Datenbank automatisch vergeben - ich wuesste nicht, wie ich da ein Start-Offset angeben kann. Das ist eine von Hibiscus verwendete Dritt-Software, die nicht von mir programmiert wurde. Siehe http://www.h2database.com
joti2
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 4
Dabei seit: 01 / 2012
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 14:41 Uhr  ·  #7
Zitat geschrieben von hibiscus
Zitat geschrieben von joti2
spricht etwas dagegen Hibiscus so zu verändern, dass es auch bei der Embedded-DB Primärschlüssel ab 1 verwendet?


Ja. Ich weiss nicht, ob das ueberhaupt geht. Die IDs werden von der H2-Datenbank automatisch vergeben - ich wuesste nicht, wie ich da ein Start-Offset angeben kann. Das ist eine von Hibiscus verwendete Dritt-Software, die nicht von mir programmiert wurde. Siehe http://www.h2database.com


Danke für die fixe Antwort. Ein kurzer Blick zu Google und in die H2DB Dokumentation zeigte auch nichts, was dahingehend nützlich wäre. Es scheint noch einen MySQL-Kompatibilitätsmodus zu geben, der für dieses spezifische Problem allerdings nichts zu enthalten scheint, sondern eher für andere MySQL-Eigenarten.
Wenn die Primärschlüssel von H2DB immer ab 0 sequentiell vergeben werden, wäre ja die unsaubere Methode jede relevante Tabelle mit einem Blind-Eintrag vorzubestücken und somit die Schlüsselnummer 0 zu verbrauchen. Das müsste natürlich in den entsprechenden Queries beachtet werden.

Aber vermutlich wäre ein Skript zur Nachbearbeitung des Backups oder eine "Mysql-Migrationsfunktion" die die Backup-Ausgabe entsprechend anpasst am hilfreichsten. Ich mach das ganze erstmal und berichte dann mehr.
j
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 128
Dabei seit: 02 / 2006
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 16:45 Uhr  ·  #8
Bei der Definition der Tabelle ist der Primärschlüssel wie folgt anzugeben:

Code

CREATE TABLE tabelle (
 id IDENTITY(1),
 :
 :


Lt. Dokumentation kann bei IDENTITY ein Startwert und ein Inkrementierungswert angegeben werden.

Heiner
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 17:51 Uhr  ·  #9
Stimmt. Haste Recht. Wirklich ausdruecklich erwaehnt ist das zwar unter http://www.h2database.com/html…definition nicht (zumindest steht in dem Beschreibungstext drunter nichts). Aber es sieht plausibel aus. Ich werd das mal aendern. Gilt dann aber natuerlich nur fuer Neu-Installationen.
j
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 128
Dabei seit: 02 / 2006
Betreff:

Re: Hibiscus: Migratio von embedded Datenbank zu MySQL

 · 
Gepostet: 23.01.2012 - 19:41 Uhr  ·  #10
Ich habe die Änderung in JVerein auch nachvollzogen.

Heiner
Gewählte Zitate für Mehrfachzitierung:   0