Contao Camp 2019 in München - Save the date!
Ergebnis 1 bis 23 von 23

Thema: Data too long for column 'singleSRC'

  1. #1
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard Data too long for column 'singleSRC'

    Servus,

    Ich aktualisiere gerade in einer lokalen MAMP Installation ein Contao 2.11.x Installation auf 3.5. Leider komme ich über den Schritt 3 des Update auf Version 3.0 nicht hinaus. Folgende Fehlermeldung erscheint:

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Data too long for column 'singleSRC' at row 4 (ALTER TABLE `tl_content` CHANGE `singleSRC` `singleSRC` binary(16) NULL) thrown in system/modules/core/library/Contao/Database/Statement.php on line 295
    #0 system/modules/core/library/Contao/Database.php(207): Contao\Database\Statement->query('ALTER TABLE `tl...')
    #1 system/modules/core/library/Contao/Database/Updater.php(820): Contao\Database->query('ALTER TABLE `tl...')
    #2 system/modules/core/library/Contao/Database/Updater.php(775): Contao\Database\Updater::convertSingleField('tl_content', 'singleSRC')
    #3 system/modules/core/controllers/BackendInstall.php(1059): Contao\Database\Updater->updateFileTreeFields()
    #4 system/modules/core/controllers/BackendInstall.php(508): Contao\BackendInstall->update300()
    #5 system/modules/core/controllers/BackendInstall.php(175): Contao\BackendInstall->runDatabaseUpdates()
    #6 contao/install.php(20): Contao\BackendInstall->run()
    #7 {main}
    Die Meldung ist logisch, aber es scheint, dass die Konvertierung nicht passiert.

    Meine Anleitung ist folgende: https://community.contao.org/de/show...C3%BCr-Schritt

    Danke!
    Geändert von xchs (15.05.2019 um 15:01 Uhr) Grund: Code-Tags

  2. #2
    Contao-Urgestein
    Registriert seit
    22.10.2013.
    Beiträge
    7.778
    User beschenken
    Wunschliste

    Standard

    Die vielen Zwischenschritte beim Update würde ich eh nicht empfehlen. Wenn überhaupt einen Zwischenschritt, dann würde ich die letzte 3.2.x dafür auswählen. In 3.0 und 3.1 sind diverse Bugs drin, die unter anderem auch die Konvertierung betreffen. Auf die muss man nicht unbedingt updaten.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Ich denke er meint die Datenbank Update Schritte in Contao 3.5 (3.0, 3.2, 3.3, 3.4, 3.5).

  4. #4
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich denke er meint die Datenbank Update Schritte in Contao 3.5 (3.0, 3.2, 3.3, 3.4, 3.5).
    Ja, das ist richtig. Es passiert ja alles im Installtool.

  5. #5
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Die vielen Zwischenschritte beim Update würde ich eh nicht empfehlen. Wenn überhaupt einen Zwischenschritt, dann würde ich die letzte 3.2.x dafür auswählen. In 3.0 und 3.1 sind diverse Bugs drin, die unter anderem auch die Konvertierung betreffen. Auf die muss man nicht unbedingt updaten.
    Was wäre eine Alternative zum Installtool? Bis jetzt hat das immer gut geklappt. Scheinbar scheitert es ander Transformierung. Gibt es eine manuelle Möglichkeit das zu erledigen? Also von VARCHAR zu BINARY. In den Sourcen von Contao habe ich dazu nichts gefunden.

    Danke!

  6. #6
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.684
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von wschwaig Beitrag anzeigen
    Was wäre eine Alternative zum Installtool? Bis jetzt hat das immer gut geklappt. Scheinbar scheitert es ander Transformierung. Gibt es eine manuelle Möglichkeit das zu erledigen? Also von VARCHAR zu BINARY. In den Sourcen von Contao habe ich dazu nichts gefunden.

    Danke!
    Ich habe mir gerade den den Quellcode angeschaut. Meines Erachtens liegt hier ein Bug von Contao vor. Der Datentyp der Spalte wird auf binary(16) geändert bevor die Werte konvertiert werden. Das dies scheitert, wenn der Pfad zu lang ist, sollte klar sein.

    https://github.com/contao/core/blob/....php#L818-L822

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Die Daten werden aber vorher konvertiert - normalerweise.

    // edit: hm, oder auch nicht

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Wäre aber komisch, dann hätte ja niemand jemals von Contao <3.2 auf Contao >=3.2 aktualisieren können.

  9. #9
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.684
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Die Daten werden aber vorher konvertiert - normalerweise.

    // edit: hm, oder auch nicht
    In dem verlinkten Code halt nicht.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Achso, moment, der Fehler muss vorher passiert sein. Beim Update auf 3.0 werden die Pfade ja zu numerischen IDs umgewandelt. Und dann beim Update auf 3.2 zu UUIDs, theoretisch - wobei es auch dort eine Routine gibt für den Fall, dass das Feld noch einen Pfad enthält, was aber nur bei sehr kurzen Pfaden funktionieren würde.

  11. #11
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Ich habe mir gerade den den Quellcode angeschaut. Meines Erachtens liegt hier ein Bug von Contao vor. Der Datentyp der Spalte wird auf binary(16) geändert bevor die Werte konvertiert werden. Das dies scheitert, wenn der Pfad zu lang ist, sollte klar sein.

    https://github.com/contao/core/blob/....php#L818-L822
    Ja, das ist klar. Soweit habe ich eben auch schon recherchiert. Aber wo passiert die Konvertierung selbst?

  12. #12
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Achso, moment, der Fehler muss vorher passiert sein. Beim Update auf 3.0 werden die Pfade ja zu numerischen IDs umgewandelt. Und dann beim Update auf 3.2 zu UUIDs, theoretisch - wobei es auch dort eine Routine gibt für den Fall, dass das Feld noch einen Pfad enthält, was aber nur bei sehr kurzen Pfaden funktionieren würde.
    Wo passiert die Umwandlung? Und wie kann ich die Umwandlung manuell erledigen? Ich hänge bei Schritt 3 für die Konvertierung zu Contao 3.0 im Installtool.

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Genau das ist der Schritt, wo das passiert. Die Fehlermeldung, die du gepostet hast, kommt aber aus dem 3.2 Update Schritt.

  14. #14
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.684
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Achso, moment, der Fehler muss vorher passiert sein. Beim Update auf 3.0 werden die Pfade ja zu numerischen IDs umgewandelt. Und dann beim Update auf 3.2 zu UUIDs, theoretisch - wobei es auch dort eine Routine gibt für den Fall, dass das Feld noch einen Pfad enthält, was aber nur bei sehr kurzen Pfaden funktionieren würde.
    Wie kommst du darauf, dass der Aufruf beim Update auf Contao 3.2 erfolgt? Laut dem geposteten Stacktrace erfolgt es beim Update auf Contao 3.0 (Contao\BackendInstall->update300()).

    Meine Vermutung:
    • Updater::convertSingleField hatte ursprünglich die Logik der Pfadkonvertierung zu numerischer Id
    • Seit Contao 3.2 beinhaltet es aber die Logik zur Konvertierung zur Uuid


    Wenn meine Vermutung stimmt, sollte ein schrittweises Update die Lösung sein: Contao 2.11 -> 3.0 -> 3.5

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Stimmt . Ich würde aber empfehlen zumindest die neueste 3.1.x Version zu nehmen, da der Updater von 3.0.x Fehler enthält, soweit ich mich erinnere.

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Vielleicht sollte das in Contao 3.5 noch reported & gefixt werden. Contao 3.5 erhält zwar keine Updates mehr - aber ansonsten kann man ja nicht wie vorgesehen von Contao 2.11 auf Contao 3.5 aktualisieren, um dann auf Contao 4.x aktualisieren zu können.

  17. #17
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Hallo Zusammen

    Danke für die Hilfestellungen bis hierher. Ich habe nun versucht die Updates in kleineren Schritten zu probieren.

    2.11.x auf 3.2.x kommt folgende Fehlermeldung

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Truncated incorrect DOUBLE value: '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' (UPDATE `tl_calendar_events` SET `singleSRC`=NULL WHERE `singleSRC`='' OR `singleSRC`=0) thrown in system/modules/core/library/Contao/Database/Statement.php on line 279
    #0 system/modules/core/library/Contao/Database.php(198): Contao\Database\Statement->query('UPDATE `tl_cale...')
    #1 system/modules/core/library/Contao/Database/Updater.php(774): Contao\Database->query('UPDATE `tl_cale...')
    #2 system/modules/core/library/Contao/Database/Updater.php(728): Contao\Database\Updater::convertSingleField('tl_calendar_eve...', 'singleSRC')
    #3 contao/install.php(1036): Contao\Database\Updater->updateFileTreeFields()
    #4 contao/install.php(515): InstallTool->update300()
    #5 contao/install.php(180): InstallTool->runDatabaseUpdates()
    #6 contao/install.php(1113): InstallTool->run()
    #7 {main}
    2.11.x auf 3.0.x kommt folgende Fehlermeldung

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Column 'singleSRC' cannot be null (UPDATE tl_content SET singleSRC=NULL WHERE id='8') thrown in system/modules/core/library/Contao/Database/Statement.php on line 317
    #0 system/modules/core/library/Contao/Database/Statement.php(261): Contao\Database\Statement->query()
    #1 system/modules/core/library/Contao/Database/Updater.php(506): Contao\Database\Statement->execute(NULL, '8')
    #2 contao/install.php(927): Contao\Database\Updater->updateFileTreeFields()
    #3 contao/install.php(191): InstallTool->update300()
    #4 contao/install.php(944): InstallTool->run()
    #5 {main}
    Schön langsam denke ich es liegt am MAMP oder einer Erweiterung. Ich habe bereits mehrere Updates von Contao 2.11.x Instanzen gemacht und noch nie so Probleme gehabt.

    Ich bin weiterhin für alle Hinweise dankbar. Echt komisch.

    Danke!
    Geändert von xchs (16.05.2019 um 16:37 Uhr) Grund: Code-Tags

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Versuche es eben, wie von mir empfohlen, zuerst mit einem Update auf die neueste 3.1.x Version. Dann auf 3.5.40.

  19. #19
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Versuche es eben, wie von mir empfohlen, zuerst mit einem Update auf die neueste 3.1.x Version. Dann auf 3.5.40.
    Auch schon probiert. Geht leider auch nicht

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.048
    User beschenken
    Wunschliste

    Standard

    Mit welchem Fehler?

  21. #21
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Mit welchem Fehler?
    Fatal error: Uncaught exception Exception with message Query error: Data too long for column 'name' at row 1 (INSERT INTO tl_files (pid, tstamp, name, type, path, extension, hash) VALUES (32, 1558075632, 'Zeitungsartikel_SbgWirtschaft_TalentecheckKarrier ePlan_Nr47_Nov14.pdf', 'file', 'tl_files/pts-saalfelden.salzburg.at/downloads/Zeitungsartikel_SbgWirtschaft_TalentecheckKarriere Plan_Nr47_Nov14.pdf', 'pdf', '15a40ff96dff6662bf67015b0053f263')) thrown in system/modules/core/library/Contao/Database/Statement.php on line 282
    #0 system/modules/core/library/Contao/Database/Statement.php(253): Contao\Database\Statement->query()
    #1 system/modules/core/library/Contao/Database/Updater.php(547): Contao\Database\Statement->execute(32, 1558075632, 'Zeitungsartikel...', 'tl_files/pts-sa...', 'pdf', '15a40ff96dff666...')
    #2 system/modules/core/library/Contao/Database/Updater.php(522): Contao\Database\Updater->scanUploadFolder('tl_files/pts-sa...', 32)
    #3 system/modules/core/library/Contao/Database/Updater.php(522): Contao\Database\Updater->scanUploadFolder('tl_files/pts-sa...', 23)
    #4 contao/install.php(948): Contao\Database\Updater->scanUploadFolder()
    #5 contao/install.php(544): InstallTool->update300()
    #6 contao/install.php(181): InstallTool->runDatabaseUpdates()
    #7 contao/install.php(1001): InstallTool->run()
    #8 {main}

    Hier scheitert es bereits an Schritt 2 des Contao 3.0 Datenbank Updates. Verwendet wird Contao Version 3.1.5.

    Danke!

  22. #22
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    6.354
    Partner-ID
    152
    User beschenken
    Wunschliste

    Standard

    Ja, und da haben wir es dann:

    DCA, Contao 3.0: https://github.com/contao/core/blob/...files.php#L160

    Maximale Länge des Dateinamens ist da 64 Zeichen. Deiner hat 70 Zeichen.

    Einfachste Lösung wäre, den Dateinamen zu kürzen. Oder Du änderst die Felddefinition manuell.

  23. #23
    Contao-Nutzer Avatar von wschwaig
    Registriert seit
    08.04.2011.
    Ort
    Maria Alm am Steinernen Meer
    Beiträge
    86

    Standard

    Zitat Zitat von lucina Beitrag anzeigen
    Ja, und da haben wir es dann:

    DCA, Contao 3.0: https://github.com/contao/core/blob/...files.php#L160

    Maximale Länge des Dateinamens ist da 64 Zeichen. Deiner hat 70 Zeichen.

    Einfachste Lösung wäre, den Dateinamen zu kürzen. Oder Du änderst die Felddefinition manuell.
    Nein, ich denke nicht. In Contao Version 3.1 ist das bereits auf maxlength 255 gesetzt, oder spielt hier was von 3.0 noch rein bei der Update-Routine?

    https://github.com/contao/core/blob/...files.php#L156

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •