@rheydenr
Hallo Ralf,
dank dir soweit. Eventuell kann ich es heute nochmal probieren.
Um ganz sicher zu gehen, ist der folgende Ablauf der richtige:
1. Update der Version 1.6 auf 2.1.1
Muss ich hier noch irgendwas beachten? Gibt es ein empfohlenes Vorgehen für einen Ubuntu-Rechner (also tar.gz oder deb-Paket)?
2. Starten der Version 2.1.1 und schauen, ob alles soweit geht.
3. Anlegen einer neuen Datenbank im MySQL.
Gibt es hier was zu beachten? Eine spezielle MySQL-Version? Irgendwelche Parameter beim Anlegen der DB?
4. Verwendung von HSQL2MYSQL4FAK-2.1.0.ZIP
Natürlich vorher die Dateien wie von dir initial beschrieben editieren. Wobei: Kannst du evtl. das Vorgehen hier nochmal posten, damit wir ganz sicher gehen?
Ich habe ja dieses Vorgehen bereits mehrmals durchgeführt, aber eventuell ist bei einem Teilschritt irgendein Detail anders.
Es wäre sehr nett von dir, wenn du hier nochmal antworten könntest.
Hallo Ralf,
leider muss ich dir mitteilen, dass es nicht geklappt hat. Ich bekomme immer noch denselben Fehler. Doch Schritt für Schritt, was ich gemacht habe:
1. Basis: Rechner mit Ubuntu 18.04 und Fakturama 1.6.9c ; Java:$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
2. Ich habe mir von der Website das folgende Paket runtergeladen: "Installer_Fakturama_linux_x64_2.1.0e.deb"
3. Versichert, dass es kein Verzeichnis "home/user/.fakturama2" gibt
4. Das Paket mittel "dpkg -i Installer_Fakturama_linux_x64_2.1.0e.deb" installiert
5. über "chown -R user:group /usr/share/Fakturama2" dem Verzeichnis Berechtigungen vergeben (war alles auf root:root)
6. als normaler User (nicht als root) über "chmod +x /usr/share/Fakturama2/fakturama2/Fakturama" die neue Version ausführbar gemacht
7. Über "/usr/share/Fakturama2/fakturama2/Fakturama" die neue Version gestartet
8. Im Dialog nichts geändert. Er hat mir beim alten Verzeichnis das Arbeitsdir der bisherigen Version angezeigt. Im nächsten Dialog kam die Frage, ob ich die Daten der bisherigen Installation übernehmen will. Das hab ich bestätigt.
9. Anschließend hat er die Daten übernommen ; eine kurze Kontrolle hat gezeigt, dass die Daten da sind.
10. Weil in einem Dialog dazu aufgefordert wurde, hab ich über "Extras" -> "Dokumente neu organisieren" diese Funktion gestartet.
Anschließend hab ich Fakturama2 beendet und hab mich der Anleitung von HSQL2MYSQL zugewandt.
Dort nun:
11. Über phpmyadmin eine neue Datenbank angelegt. Kollation: "utf8mb4_general_ci". Einem User GRANT ALL verpasst.
12. Über "mysql -h 192.168.0.1 -u sqluser -p" den Zugang getestet ; ging perfekt
HINWEIS: Die DB war zu diesen Zeitpunkt wie "show tables;" gezeigt hat, leer.
EINSCHUB: Hier sieht man schon, dass die MySQL-DB nicht auf demselben Rechner liegt, auf dem Fakturama 2 läuft. Falls das von Bedeutung sein sollte.
13. über "mv /home/user/.fakturama2 /home/user/.fakturama2.old" das Arbeitsverzeichnis umbenannt
14. Über "/usr/share/Fakturama2/fakturama2/Fakturama" die neue Version neu gestartet
15. Im Dialog folgendes gemacht:
a. Arbeitsverzeichnis neu: "/home/user/.fakturama2" eingetragen
b. Arbeitsverzeichnis alt: gelöscht
c. Std deaktiviert
d. MySQL ausgewählt und als Pfad "192.168.0.1/fakturama2db?useSSL=false&characterEncoding=utf8&useUnicode=yes" angegeben. Den User und das Passwort aus Schritt 12 angegeben
e. Abgewartet
16. Als Fakturama2 gestartet war, hab ich in der MySQL-DB nochmal nachgeschaut. Nun waren Tabellen da.
17. Fakturama 2 beendet
18. in das HSSQL2MYSQL-Dir gewechselt und wie in der Anleitung die Dateien "migration.grf" ; "migration_002.grf" ; "migration_003.grf" und "workspace.prm" editiert.
19. Befehl "bin/clover migration.grf" gestartet. Letzte Zeilen:
INFO [WatchDog_0] - -----------------------** Summary of Phases execution **---------------------
INFO [WatchDog_0] - Phase# Finished Status RunTime(sec) MemoryAllocation(KB)
INFO [WatchDog_0] - 0 ERROR 0 18592
INFO [WatchDog_0] - 1 N/A 0 0
INFO [WatchDog_0] - 2 N/A 0 0
INFO [WatchDog_0] - 3 N/A 0 0
INFO [WatchDog_0] - 4 N/A 0 0
INFO [WatchDog_0] - 5 N/A 0 0
INFO [WatchDog_0] - 6 N/A 0 0
INFO [WatchDog_0] - 7 N/A 0 0
INFO [WatchDog_0] - 8 N/A 0 0
INFO [WatchDog_0] - 9 N/A 0 0
INFO [WatchDog_0] - ------------------------------** End of Summary **---------------------------
INFO [WatchDog_0] - WatchDog thread finished - total execution time: 0 (sec)
DEBUG [WatchDog_0] - unregister MBean with name: org.jetel.graph.runtime:type=CLOVERJMX_1516149394050_0
INFO [main] - Freeing graph resources.
ERROR [main] -
--------------------------------- Error details ----------------------------------
Component [DBExecute:DB_EXECUTE0] finished with status ERROR.
Can't DROP 'FK_FKT_CONTACT_FK_ADDRESS'; check that column/key exists
----------------------------------------------------------------------------------
UNTERM STRICH:
Wieder nichts.
Mach ich in irgendeinem Schritt ein Detail falsch? Siehst du hier noch einen Weg, die Daten zu übernehmen?
Moin, bis auf den Fakt, daß das Arbeitsverzeichnis eigentlich nicht nach .fakturama2 gehört hast Du offenbar alles richtig gemacht. Warum das in meinem Setting funktioniert und bei Dir nicht kann ich Dir wirklich nicht sagen. Ich hab's mehrfach ausprobiert und es gibt hier im Forum auch User, denen das geglückt ist. Scheinbar ist bei der Anlage der Datenbank unter MySQL irgendwas schiefgegangen oder das Migrationsskript ist nicht das richtige (es gibt drei unterschiedliche Versionen). Ich hab da jetzt echt keine weitere Idee...
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Hi Ralf,
Danke für deine Antwort.
Wo bekomme ich denn die anderen Versionen des Skripts her?
Hier: BitBucket. (ich hab das noch nicht im master-Branch, nur im develop)
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
@rheydenr
Hallo,
nach langer Zeit habe ich nun wieder mal Zeit, mich mit dieser Sache zu beschäftigen.
Leider muss ich sagen, dass es immer noch nicht klappt: Egal, was ich auch tue, ich bekomme die Anbindung an die MySQL einfach nicht hin.
Kannst du mir hier bitte nochmal helfen? Ich hoffe, wir bekommen einen Weg hin, dass wir die Konvertierung erfolgreich abschließen können.
Bin gerade dabei, das nochmal zu prüfen. Allerdings hatte ich das in der Vergangenheit immer erfolgreich durchführen können. Ich melde mich nochmal.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Ich habe dasselbe Problem wie @JummyJimmy gehabt unter Linux. Es lief 2.1.0c und ich bekam den selben Fehler.
Nun habe ich Fakturama aktualisiert auf 2.1.0c und Java auf
openjdk version "11.0.9.1" 2020-11-04
Fakturama startet, die Daten sind da.
Fakturama Version: 2.1.2-SNAPSHOT Build-ID: 20210127-0832 Java-Version: 11.0.9.1
Anschließend gehe ich erneut nach der Anleitung hier vor und starte
sudo bin/clover migration.grf
Nun bekomme ich schon vorher einen Fehler:
...
DEBUG [main] - Plugin org.jetel.thirdparty loaded.
id - org.jetel.thirdparty
version - 4.7.0
provider-name - Javlin a.s.
component { className = org.jetel.component.Filter; name = Filter; type = FILTER; }
component { className = com.linagora.component.LdapReader; name = LDAPReader; type = LDAP_READER; }
component { className = com.linagora.component.LdapWriter; name = LDAPWriter; type = LDAP_WRITER; }
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.jetel.component.ComponentFactory.init(ComponentFactory.java:71)
at org.jetel.plugin.Plugins.init(Plugins.java:178)
at org.jetel.plugin.Plugins.init(Plugins.java:147)
at org.jetel.plugin.Plugins.init(Plugins.java:98)
at org.jetel.graph.runtime.EngineInitializer.initEngine(EngineInitializer.java:74)
at org.jetel.main.runGraph.main(runGraph.java:346)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 6 more
Wäre toll, wenn das noch klappen würde mit der Umstellung von Einzel- auf Mehrarbeitsplatz und MariaDB!
Vielen Dank und viele Grüße!
nire
@rheydenr gibt es sonst vllt. einen Workaround, wenn man nur eine kleine DB hat? Daten erst aus der alten Installation exportieren und dann in der neuen leeren Installation importieren? Danke!
@nire Ich befürchte daß das Migrationsscript nur mit Java 8 läuft ? Der Fehler deutet jedenfalls drauf hin (da fehlen Bauteile, die im Java 8 drin sind, aber nicht mehr im Java 11).
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Was kann ich tun?
Wenn ich richtig informiert bin, ist Java 11 bei den neuen Versionen Pflicht.
Ich kann natürlich zurück auf eine ältere Version mit Java 8 gehen, migrieren und dann wieder zurück auf Java 11 und neueste Version von Fakturama. Leider klappte die Migration nicht mit 2.1.0.c
Wird an der Lösung des Problems noch gearbeitet? ?
Moin, habe das gleiche Problem. Da ich Java 16 aktiv hatte habe ich einfach java-1.8.0-openjdk zusätzlich installiert und mit "sudo update-alternatives --config java" (in Fedora) ausgewählt. (Genauso kann man das vorherige Java nach der Migration wieder auswählen)
Danach lief "sudo bin/clover migration.grf" erheblich besser, aber leider immer noch mit Fehler.
Die Meldungen habe ich mal in anhängender Datei error.txt gespeichert. Eventuell hilft das ja bei der Analyse.
Mein OS ist Fedora 33, Fakturama ist 2.1.1b, die Migrationsdateien von HSQL2MYSQL4FAK-2.1.0
beste Grüße
Holm
P.S. Leider darf ich die Datei nicht anhängen, die Meldungen auch nicht direkt anhängen. Sorry
Gibt es eine Möglichkeit umzustellen mit der aktuellen Version? Oder geht es evtl. wenn man auf eine ältere Version downgraded?
Kann man alternativ die Daten exportieren und und eine neue leere DB importieren?
Vielen Dank!
Versuch mal das hier.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
@rheydenr danke!
Leider bekomme ich den Fehler hier:
sudo bin/clover migration.grf
DEBUG [main] - Plugin org.jetel.hadoop loaded.
id - org.jetel.hadoop
version - 4.7.0
provider-name - Javlin a.s.
connection { className = org.jetel.hadoop.connection.HadoopConnection; type = HADOOP; }
component { className = org.jetel.hadoop.component.HadoopWriter; name = HadoopWriter; type = HADOOP_WRITER; }
component { className = org.jetel.hadoop.component.HadoopReader; name = HadoopReader; type = HADOOP_READER; }
urlResolver { className = org.jetel.hadoop.service.filesystem.HadoopPathResolver; type = HADOOP_HDFS; }
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.jetel.component.ComponentFactory.init(ComponentFactory.java:71)
at org.jetel.plugin.Plugins.init(Plugins.java:178)
at org.jetel.plugin.Plugins.init(Plugins.java:147)
at org.jetel.plugin.Plugins.init(Plugins.java:98)
at org.jetel.graph.runtime.EngineInitializer.initEngine(EngineInitializer.java:74)
at org.jetel.main.runGraph.main(runGraph.java:346)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 6 more
java --version openjdk 11.0.11-ea 2021-04-20 OpenJDK Runtime Environment (build 11.0.11-ea+4-post-Debian-1) OpenJDK 64-Bit Server VM (build 11.0.11-ea+4-post-Debian-1, mixed mode, sharing)