Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-Indexieren von yForm 4 Tabellen #337

Closed
dpf-dd opened this issue May 3, 2022 · 12 comments
Closed

Re-Indexieren von yForm 4 Tabellen #337

dpf-dd opened this issue May 3, 2022 · 12 comments

Comments

@dpf-dd
Copy link

dpf-dd commented May 3, 2022

Ich habe hier ein Redaxo 5.13.2 mit aktueller Version des search_it AddOns, dazu werkelt yForm 4.0.2 und das URL-AddOn in Version 2.

Wenn ich meine yForm-Tabelle in den Suchindex aufnehme und die Option "Reindexieren aller Spalten, wenn Tabellen mit YForm oder form bearbeitet werden" in den Einstellungen aktiviere, dann führt das zu folgendem "Fehler" beim Anlegen eines Datensatzes in der betreffenden yForm-Tabelle:
Bildschirmfoto 2022-04-29 um 14 56 18

Der Datensatz wird trotzdem gespeichert, aber die Redakteure nehmen es als Fehler wahr, denn die Tabelle wird dann adrunter NICHT ausgegeben und erfordert einen neuen Klick auf die Table.

Sobald ich die Option "Reindexieren aller Spalten, wenn Tabellen mit YForm oder form bearbeitet werden" deaktiviere wird der Datensatz ohne diese Störung gespeichert und meine YFORM_DATA_LIST auch angezeigt...

Ich werde das jetzt vermutlich umgehen und das Re-indexieren per Cronjob anstoßen. Mal schauen.

Danke fürs Lesen :)

@tyrant88
Copy link
Member

tyrant88 commented May 3, 2022

Das erste was mich stutzig macht ist, bei mir ist der Funktionsaufruf von rex_sql->rollback() in Zeile 462...
https://github.com/yakamara/redaxo_yform/blob/master/plugins/manager/lib/yform/manager.php#L462

@tyrant88
Copy link
Member

tyrant88 commented May 3, 2022

Du könntest in der Zeile davor mal den Kommentar entfernen und damit die Exception dumpen.

@dpf-dd
Copy link
Author

dpf-dd commented May 3, 2022

Das hatte ich im Zuge der Fehleranalyse gemacht. Der Dump sagt, dass das SQL-Objekt leer ist bzw. nicht existiert.
Außerdem hatte ich das gestern auch mit yForm 3.4.2 als auch mit 4.x probiert - das Problem passiert in beiden Versionen, nur die Zeilennummer ändert sich.
bildschirmfoto_2022-04-29_um_14 56 18

@dpf-dd
Copy link
Author

dpf-dd commented May 3, 2022

OK, oben im Screenshot ist der Dump auf das sql-Object. Hier folgt jetzt der dump auf das auskommentierte $e-Object
Bildschirmfoto 2022-05-03 um 12 21 43

@tyrant88
Copy link
Member

tyrant88 commented May 3, 2022

Da kann ich so schnell jetzt nix sagen. Dazu muss es ja noch an deiner Config/Tabelle liegen, da die Meldung bei uns anderen nicht auftaucht.

@dpf-dd
Copy link
Author

dpf-dd commented May 3, 2022

Ich versuche das Problem heute Abend mal in einem jungfräulichen Redaxo nachzustellen. Allerdings wüsste ich nicht, was ich da jetzt anders mache als der Standard... Es gibt eine yForm-Tabelle mit dem Feld "headline" - woraus sich das URL-AddOn die Url generiert. Die Tabelle erscheint dann yForm-bedingt automatisch unter "Tabellen" und ich kann Datensätze anschauen, editieren und hinzufügen. Ich habe da auch keine Skripte, die sich per EP iwo einklinken - alles "nativ" verbunden (yForm - search_it - url). Ich wüsste auch gar nicht, was ich da jetzt manuell noch "abstöpseln" könnte um das möglichst "roh" zu testen...

Aber danke erstmal für dein schnelles Feedback. Hab ja erstmal eine "Lösung" gefunden und der Kunde kann erstmal weiter damit arbeiten... :)

@fietstouring
Copy link

Habe ein ähnliches Setup und bekomme bei jedem Seitenaufruf diesen Fehler im Systemlog:
Dazu muss nur "URLs aus dem URL Addon (Version >=2) indexieren" angehakt sein.

rex_sql_exception | Error while executing statement "SELECT search_it.id FROM `rex_tmp_search_it_index` AS search_it LEFT JOIN `rex_url_generator_url` as url ON search_it.fid = url.url_hash WHERE texttype = 'url' AND url.id IS NULL;": SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
-- | --

@tyrant88
Copy link
Member

Dann pass doch die collations mal an.

@tyrant88
Copy link
Member

utf8mb4_unicode_ci ist die von REDAXO empfohlene Collation.

@fietstouring
Copy link

Ich musste die Spalte "fid" der Tabelle [rex_tmp_search_it_index](auf VARCHAR(191) umstellen, da die Konvertierung sonst nicht klappt, siehe hier https://stackoverflow.com/questions/1814532/mysql-error-1071-specified-key-was-too-long-max-key-length-is-767-bytes

@tyrant88
Copy link
Member

Cool, danke. Das hatte ich übersehen.

@xong
Copy link
Member

xong commented Jun 20, 2022

Keine Ahnung, ob es damit zusammenhängt, aber seit YForm 4 hat sich auch der EP geändert: https://github.com/yakamara/redaxo_yform/blob/master/lib/yform/action/db.php#L91

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants