Hm, ja. Das ist leider ein Makel - ich hab das Migrationsskript noch nicht auf Java 11 umgestellt, das läuft derzeit noch unter Java 8. In den *.grf-Dateien muß auch der Pfad zur HSQLDB.jar mit angepaßt werden.
Viele Grüße,
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Habe es hinbekommen! Vielen Dank @rheydenr
Ich schreibe mal auf, was ich gemacht und verändert habe. Vllt. hilft es ja jemandem. @hherrman @JummyJimmy @em_peter
Ausgangssituation: Fakturama Einzelplatzinstallation aktuelle Version unter Debian 11
Ziel: Migration in MariaDB auf anderem Server
Basis ist das hier verlinkte Paket: https://www.fakturama.info/community/postid/16864/ und diese Anleitung: https://bitbucket.org/fakturamadev/fakturama-2/src/develop/Fakturama-Parent/org.fakturama.help/howto/hsql2mysql/migrate.md
Fakturama lasse ich unter Java 11 laufen (u.a. für die initiale Verbindung zu leeren MariaDB um die Tables anzulegen). Anschließend muss die Java Version auf 8 gewechselt werden, damit die Migratiion ausgeführt werden kann. Das geht wie oben erwähnt per sudo update-alternatives --config java
migration.grf
Zeile 182: <Connection database="MYSQL" dbURL="jdbc:mysql://192.168.x.x:xxxx/fakturama" id="JDBC1" jdbcSpecific="MYSQL" name="FktMysql" password="xxx" type="JDBC" user="fakturama"/>
Zeile 183: <Connection database="HSQLDB" dbURL="jdbc:hsqldb:/media/xxx/Fakturama_BAK_20210405a/arbeitsverzeichnis/Database/Database" id="JDBC0" jdbcSpecific="HSQLDB" name="hsqldb" type="JDBC" user="sa"/>
Zeile 187: <Node dbConnection="JDBC1" enabled="enabled" guiHeight="67" guiName="DBExecute" guiWidth="128" guiX="49" guiY="27" id="DB_EXECUTE0" type="DB_EXECUTE" url="/home/xxx/Downloads/HSQL2MYSQL4FAK-2.1.1/cleanup_targetdb.sql"/>
alle Tabellennemen umbenennen: z.B. in Zeile 193 wird aus "dbTable="fkt_category"" dann dbTable="FKT_CATEGORY" usw. (unter Unix müssen die Tabellennamen alle mit Uppercase geschrieben sein, da sie auch in der DB so heißen, siehe auch https://mariadb.com/kb/en/identifier-case-sensitivity/)
migration_002.grf
Zeile 308: <Connection database="MYSQL" dbURL="jdbc:mysql://192.168.x.x:xxxx/fakturama" id="JDBC1" jdbcSpecific="MYSQL" name="FktMysql" password="xxx" type="JDBC" user="fakturama"/>
Zeile 309: <Connection database="HSQLDB" dbURL="jdbc:hsqldb:/media/xxx/Fakturama_BAK_20210405a/arbeitsverzeichnis/Database/Database" id="JDBC0" jdbcSpecific="HSQLDB" name="hsqldb" type="JDBC" user="sa"/>
alle Tabellennemen umbenennen in Uppercase (dbTable="FKT_XXX")
migration_003.grf
Zeile 71: <Connection database="MYSQL" dbURL="jdbc:mysql://192.168.x.x:xxxx/fakturama" id="JDBC1" jdbcSpecific="MYSQL" name="FktMysql" password="xxx" type="JDBC" user="fakturama"/>
Zeile 72: <Connection database="HSQLDB" dbURL="jdbc:hsqldb:/media/xxx/Fakturama_BAK_20210405a/arbeitsverzeichnis/Database/Database" id="JDBC0" jdbcSpecific="HSQLDB" name="hsqldb" type="JDBC" user="sa"/>
alle Tabellennemen umbenennen in Uppercase (dbTable="FKT_XXX")
migration_004.grf
Zeile 65: <Connection database="MYSQL" dbURL="jdbc:mysql://192.168.x.x:xxxx/fakturama" id="JDBC1" jdbcSpecific="MYSQL" name="FktMysql" password="xxx" type="JDBC" user="fakturama"/>
Zeile 66: <Connection database="HSQLDB" dbURL="jdbc:hsqldb:/media/xxx/Fakturama_BAK_20210405a/arbeitsverzeichnis/Database/Database" id="JDBC0" jdbcSpecific="HSQLDB" name="hsqldb" type="JDBC" user="sa"/>
Zeile 82: <Node dbConnection="JDBC1" enabled="enabled" guiHeight="67" guiName="DBExecute" guiWidth="128" guiX="35" guiY="597" id="DB_EXECUTE0" type="DB_EXECUTE" url="/home/xxx/Downloads/HSQL2MYSQL4FAK-2.1.1/enable_fk.sql"/>
alle Tabellennemen umbenennen in Uppercase (dbTable="FKT_XXX")
Nach einem Fehlschlag der Migration war es teilweise nötig die Datenbank zu leeren und von vorne zu beginnen.
Viel Erfolg! 🙂
Hi, danke für die ausführliche Rückmeldung. Das mit der Groß- und Kleinschreibung wird eigentlich auch über die my.ini geregelt, da gibt's einen Schalter (lower_case_table_names = 1).
Viele Grüße,
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Hallo zusammen,
wie ich sehe, macht ihr das alles unter einem Linux System. Ich aber arbeite mit Mac OS. Ich habe die entsprechende HSQL2MYSQL4FAK heruntergeladen und weiss nun nicht mehr weiter. Die migrationXX.grf habe ich auch gemäß Anleitung angepasst, aber dann hört es auch auf. Wenn ich versuche im Terminal z.B. bin\clover migration.grf eingebe bekomme ich den Hinweis "-bash: binclover: command not found"... Hat da mal jemand eine Anweisung für Apple-User? Ich kann auch gerne einem Kundigen mal die "alten" Datenbanken zur Verfügung stellen, oder mir hilft jemand via Team-Viewer. Ich weiss nicht mehr weiter.
Ach ja, habe dafür Java 11 erstmal deinstalliert und Java 8 wieder installiert. Sobald ich die Datenbanken von HSQL auf MYSQL konvertiert habe, muss ich die 11er-Version wieder aufspielen, damit Fakturama 2.1.1 ordnungsgemäß läuft. Gottseidank ist das jetzt erstmal der Test auf dem Zweitrechner meiner Frau, um später die Mehrplatzinstallation zu nutzen. Das originäre Fakturama läuft noch auf dem anderen Stand-Alone Rechner mit der ursprünglichen Datenbank.
Jens
- Honig macht das Leben süsser! -
Ich habe mal versucht schlau zu sein, und einen 2. Mandanten aufzusetzen, um die Mehrbenutzerfähigkeit zu testen. Dazu habe ich die mit dem Automator (Mac) erstellte Datei geändert um einen 2. Mandanten zu erstellen und zwar wie folgt:
/Applications/Fakturama2.app/Contents/MacOS/Fakturama
-nl es_ES &> /dev/null/ &
-w /Users/jens_kleinwaechter/Documents/Das große Projekt/01_Manufactura del gusto/02_Buchhaltung/00A_Fakturama test
- data /Users/jens_kleinwaechter/.fakturama2 Mandant 2
Ich hatte gehofft, dass beim Öffnen dieses batches (mit dem Automator von Mac erstellt) dann ein neuer Installatonsdialog erscheint bei dem ich dann auf die MySQL-Datenbank auf dem anderen Rechner verweisen kann. Aber es öffnet sich einfach die rormale Version, die schon alle Daten hat. So kann ich nicht einmal probieren, ob ich überhaupt auf die MySQL-Datenbank auf dem Rechner meiner Frau zugreifen kann...
Jens
- Honig macht das Leben süsser! -