Benutzerdefinierte Felder fehlen nach update
-
Hallo Zusammen,
unser selbst gehostetes CT hat über die Nach auf die neuste Version aktualisiert.
Heute Morgen fehlen bei den Personen alle Benutzerdefinierten Felder.Ein Blick in die DB zeigt folgendes:
cdb_gemeindeperson_old scheint ein Backup/umbenennung der alten cdb_gemeindeperson zu sein, wo die Benutzerdefinierten Felder drin sind
Neu werden die Fehlder scheinbar in cdb_person erstellt, die Customfelder wurden aber nicht dorthin migriert.Wenn ich in den Stamdaten jedes Benutzerdefinierte Feld öffne und speichere, dann wird das in der Tabelle cdb_person erstellt.
Jetzt muss ich also nur noch den Inhalt der alten Tabelle/Spalten nach cdb_person kopieren
Hier mal als Hinweis für all die die heute "einen schelchten Start hatten"
Und an die CT Entwickler um sich den Migrationsprozess noch einmal genauer anzuschauen.PS: Wird sind gerade noch auf PHP 8.0, aber wechseln in den nächsten Tagen auf 8.1
-
@aschild Die Migration ist bei uns auf dem Server in fast allen Fällen gut durchgelaufen. Wäre interessant zu wissen, welche Fehlermeldung bei der Migration angezeigt wurde.
Und noch zum überprüfen. Es gab noch deutlich mehr Migrationen mit der neuen Version. Wenn du sichergehen willst schaust du in die Datei
system/migration/db_updates.php
Ab Zeile 7137 (case '31999':
) siehst du alle Migrationen die mit der letzten Version laufen sollten. -
Das scheint die Ursache zu sein.
Gibt es Anforderungen bezüglich MySQL/MariaDB Version und/oder Tabellenformat?2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page. 2023-05-24 3:52:05 502570 [ERROR] InnoDB: Cannot add field `heimatort` in table `churchtools`.`cdb_person` because after adding it, the row size is 8885 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.
-
@aschild da hat sich jetzt kürzlich nichts geändert. Vermutlich ist folgendes passiert:
Ihr habt eigene Felder angelegt vor längerer Zeit die in der Tabelle cdb_gemeindeperson angelegt wurden. Das war dann mit einer anderen MySQL Version die hier andere Limits hatte. Heute scheint das Limit hier anders zu sein. Vielleicht auch weil sich die Collation geändert hat und VARCHAR kann nicht mehr ganz so lange sein.
-
-
@davidschilling Ein Test den du machen kannst um zu überprüfen ob die Updates funktioniert haben ist folgende Tabellen zu überprüfen:
- cdb_gemeindeperson_gruppe
- cdb_gemeindeperson_gruppe_archive
- cdb_gruppentreffen_gemeindeperson
- cdb_gemeindeperson_tag
In diesen Tabellen sollte es jetzt eine Spalte
person_id
geben und keine Spaltegemeindeperson_id
. -
@davidschilling Die sehen alle gut aus, es schient wirklich nur die Felder nicht migrgiert zu haben.
Welches Zeilenformat sollten die Tabellen haben?
Ich vermute "dynamic" oder? -
Die Gruppenzuweisungen haben das Update auch nicht überlebt...
Zusammen mit den Berechtigungen via GruppenIn der Tabelle cdb_gemeindeperson_gruppe habe ich die neue person_id Spalte, aber die Wetre sind alle 0.
Die gemeindeperson_id spalte existiert aber noch, von da her kann ich die Daten dort übernehmen.Bei cdb_gemeindeperson_gruppe_archiv, cdg_gruppentreffen_gemeindeperson fehlt die gemeindeperson_id spalte, aber die person_id ist dort überall 0
Und in cdb_gemeindeperson_tag habe ich auch nur die person_id, aber keine Datensätze, wobei wir das vermutlich nicht gebraucht haben
-
@aschild Dann würde ich dir vorschlagen das Backup von davor einzuspielen und das Update danach nochmal neu zu machen. Davor kannst du ja schonmal die Länge der Felder in der cdb_gemeindeperson Tabelle anpassen, sodass es beim Update den Fehler nicht mehr gibt.
Beim ersten Aufruf von CT wird das Update ja ausgeführt, so kannst du dann auch die Fehlermeldungen sehen die es beim Update gibt.
-
@davidschilling Ja, habe soeben ein Restore der DB+CT gemacht und läuft es wie "gestern"
Ursache scheint das row_format Compact zu sein, welches Probleme machen kann wenn man mehr/breitere Felder hinzufügen will.
Ich habe alle Tabellen jetzt mit Dynamic Rowformmat erstellen lassen und werde in den nächsten Tagen nochmals ein Update versuchen.