JoomGalleryfriends / JG4-dev

Development repository for JoomGallery v4.x
GNU General Public License v3.0
10 stars 6 forks source link

Migration: Time measurements #250

Open Elfangor93 opened 2 weeks ago

Elfangor93 commented 2 weeks ago

This PR adds a time measurement for all the steps taken during the migration of a migrateable (category, image). The times are taken and outputted into the log file com_joomgallery.migration.log.php.

If you want to take measurements of your current migration, then

  1. Copy the file administrator/com_joomgallery/src/Model/MigrationModel.php of this PR
  2. Replace the file in your current JoomGallery installation
  3. Perfrom a migration
  4. Look into the log file
Grantler61 commented 2 weeks ago

Hallo, habe heute einen weiteren Migrationsversuch meiner JG3 -> JG4 unternommen. Erwartungsgemäß stoppte das Skript nach 52699 Bildern. Im Logfile fand ich folgendes:

2024-06-23T19:01:56+00:00 DEBUG 127.0.0.1 com_joomgallery.migration getSourceData();0.015519142150879 2024-06-23T19:01:56+00:00 DEBUG 127.0.0.1 com_joomgallery.migration convertSourceData();3.2901763916016E-5 2024-06-23T19:01:58+00:00 DEBUG 127.0.0.1 com_joomgallery.migration insertRecord();1.7392640113831 2024-06-23T19:01:58+00:00 DEBUG 127.0.0.1 com_joomgallery.migration migrateFiles();0.11313891410828 2024-06-23T19:01:58+00:00 DEBUG 127.0.0.1 com_joomgallery.migration update Migrateables list (queue);0.13114094734192 2024-06-23T19:01:58+00:00 DEBUG 127.0.0.1 com_joomgallery.migration start migration of image (id:66915) 2024-06-23T19:01:59+00:00 DEBUG 127.0.0.1 com_joomgallery.migration prepareMigration();0.06008505821228 2024-06-23T19:01:59+00:00 DEBUG 127.0.0.1 com_joomgallery.migration needsMigration();0.00042510032653809 2024-06-23T19:01:59+00:00 DEBUG 127.0.0.1 com_joomgallery.migration getSourceData();0.01261305809021 2024-06-23T19:01:59+00:00 DEBUG 127.0.0.1 com_joomgallery.migration convertSourceData();3.6954879760742E-5 2024-06-23T19:02:01+00:00 DEBUG 127.0.0.1 com_joomgallery.migration insertRecord();2.3040180206299 2024-06-23T19:02:01+00:00 DEBUG 127.0.0.1 com_joomgallery.migration migrateFiles();0.112024-06-23T19:01:56+00:00 DEBUG 127.0.0.1 com_joomgallery.migration start migration of image (id:66914) 2024-06-23T19:01:56+00:00 DEBUG 127.0.0.1 com_joomgallery.migration prepareMigration();0.059463977813721 2024-06-23T19:01:56+00:00362886428833 2024-06-23T19:02:01+00:00 ERROR 127.0.0.1 com_joomgallery.migration Got a packet bigger than 'max_allowed_packet' bytes

Ich hoffe das hilft weiter....

Joomla 5.1.1 / Php 8.1.25

Elfangor93 commented 2 weeks ago

Got a packet bigger than 'max_allowed_packet' bytes

Das ist ein Error von deiner Datenbank und kommt, wenn in ein Datenbankfeld zu viele Daten gespeichert werden sollen. @Grantler61 Kannst du mir deine Datenbank und Version angeben, sowie der Wert von max_allowed_packet in der config der Datenbank?

Ich vermute das feld successful in der Tabelle #__joomgallery_migration als Übeltäter. Kannst du mal den Inhalt dieses Feldes in ein txt File speichern und hier posten?

Grantler61 commented 1 week ago

Zuerst mal die Infos zur Datenbank:

Server: 127.0.0.1 via TCP/IP Server-Typ: MariaDB Server-Verbindung: SSL wird nicht verwendet Dokumentation Server-Version: 10.4.32-MariaDB - mariadb.org binary distribution Protokoll-Version: 10

Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.1.25
Datenbank-Client Version: libmysql - mysqlnd 8.1.25
PHP-Erweiterung: mysqli Dokumentation curl Dokumentation mbstring Dokumentation
PHP-Version: 8.1.25

max_allowed_packet=1M

Der Export aus der Tabelle mit dem Feld successful ist ziemlich groß. Ich habe das mal als File drangehängt. joomgallery_migration_succesful.txt

MrMusic commented 1 week ago

max_allowed_packet=1M

Ja, das ist leider so unter XAMPP.

Für MariaDB sollte der Wert per Default bei 16MB liegen, siehe Doku. Wenn du den Wert in der my.ini auf 16MB oder mehr änderst sollte der Fehler nicht mehr auftreten. Wampserver z.B. hat einen Wert von 64MB per default.

Grantler61 commented 1 week ago

max_allowed_packet=1M

Für MariaDB sollte der Wert per Default bei 16MB liegen, siehe Doku. Wenn du den Wert in der my.ini auf 16MB oder mehr änderst sollte der Fehler nicht mehr auftreten. Wampserver z.B. hat einen Wert von 64MB per default.

Nachdem ich max_allowed_packet quf 32M gesetzt habe ist die Migration mit 86400 Fotos fehlerfrei durchgelaufen. Der ganze Spaß hat nur 40 Stunden gedauert :-).

Was macht eigenlich der Button "Check and finish migration" ?. Als ich wieder an den Rechner kam und den Button aktivierte war ich direkt im Anmeldebildschirm für das Admin-Backend. War wahrscheinlich ein Timeout des Backends. Habe ich was verpasst ?

Elfangor93 commented 1 week ago

Was macht eigenlich der Button "Check and finish migration" ?

Der überprüft das System nach der Migration, dass alles ordnungsgemäss migriert wurde und dass die migrierten Daten fehlerfrei sind.

Grantler61 commented 1 week ago

Was macht eigenlich der Button "Check and finish migration" ?

Der überprüft das System nach der Migration, dass alles ordnungsgemäss migriert wurde und dass die migrierten Daten fehlerfrei sind.

Leider konnte ich nicht sehen was da vor sich geht. Bei meiner Einstellung von Session_Lifetime lande ich sofort in der Anmeldung zum Admin-Bereich. Kann man nachträglich checken ob es irgendwelche Fehler gab ? Die Log-Datei "com_joomgallery.migration.log.php" sieht super aus, Das Skript lief auch sauber durch. Gibt es irgendwelche Einträge in den Tabellen, die man prüfen sollte ?