Ergebnis 1 bis 23 von 23

Thema: Datenbank voll - tl_content nimmt keine weiteren Felder an

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard Datenbank voll - tl_content nimmt keine weiteren Felder an

    Nun gut, der Thematitel ist etwas übertrieben. Denn bestimmte Felder sind durchaus noch möglich.

    Ich habe heute eine eigene Erweiterung auf den Server kopiert und das Datenbank-Update in der Erweiterungsverwaltung aufgerufen. Contao verabschiedete sich und im error.log stand Folgendes:
    Code:
    [11-Sep-2014 10:29:41 Europe/Berlin] PHP Fatal error: Uncaught exception 'Exception' with message 'Query error: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs (ALTER TABLE `tl_content` ADD `adresse_zusatz` varchar(255) NOT NULL default '';)' thrown in /kunden/***/system/modules/core/library/Contao/Database/Statement.php on line 282
    Was will er von mir fragte ich mich und ging im Browser eine Seite zurück. Von meinen 5 Feldern waren noch 3 in die tl_content einzutragen. Also wiederholt - selbe Fehlermeldung. Ich habe dann varchar auf 240 gesetzt - selber Fehler. Mit 128 klappte es dann. Den DCA meiner Erweiterung habe ich entsprechend angepaßt und dann erstmal gegoogelt. Nachdem ich zuvor versucht hatte das Feld direkt in phpMyAdmin einzutragen. Auch dort derselbe Fehler.

    Ich hatte heute schon auf dem Berliner Stammtisch darüber gesprochen und keiner kannte bisher so eine Fehlermeldung. Neue Felder als VARCHAR(255) anlegen, geht nicht. Als Typ TEXT aber sehr wohl.

    Hier mal die Tabellenstruktur:
    Code:
    CREATE TABLE `tl_content` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `pid` int(10) unsigned NOT NULL DEFAULT '0',
      `ptable` varchar(64) NOT NULL DEFAULT '',
      `sorting` int(10) unsigned NOT NULL DEFAULT '0',
      `tstamp` int(10) unsigned NOT NULL DEFAULT '0',
      `type` varchar(32) NOT NULL DEFAULT '',
      `headline` varchar(255) NOT NULL DEFAULT '',
      `text` mediumtext,
      `addImage` char(1) NOT NULL DEFAULT '',
      `singleSRC` varchar(255) NOT NULL DEFAULT '',
      `alt` varchar(255) NOT NULL DEFAULT '',
      `title` varchar(255) NOT NULL DEFAULT '',
      `size` varchar(64) NOT NULL DEFAULT '',
      `imagemargin` varchar(128) NOT NULL DEFAULT '',
      `imageUrl` varchar(255) NOT NULL DEFAULT '',
      `fullsize` char(1) NOT NULL DEFAULT '',
      `caption` varchar(255) NOT NULL DEFAULT '',
      `floating` varchar(32) NOT NULL DEFAULT '',
      `html` mediumtext,
      `listtype` varchar(32) NOT NULL DEFAULT '',
      `listitems` blob,
      `tableitems` mediumblob,
      `summary` varchar(255) NOT NULL DEFAULT '',
      `thead` char(1) NOT NULL DEFAULT '',
      `tfoot` char(1) NOT NULL DEFAULT '',
      `tleft` char(1) NOT NULL DEFAULT '',
      `sortable` char(1) NOT NULL DEFAULT '',
      `sortIndex` smallint(5) unsigned NOT NULL DEFAULT '0',
      `sortOrder` varchar(32) NOT NULL DEFAULT '',
      `mooHeadline` varchar(255) NOT NULL DEFAULT '',
      `mooStyle` varchar(255) NOT NULL DEFAULT '',
      `mooClasses` varchar(255) NOT NULL DEFAULT '',
      `highlight` varchar(32) NOT NULL DEFAULT '',
      `shClass` varchar(255) NOT NULL DEFAULT '',
      `code` text,
      `url` varchar(255) NOT NULL DEFAULT '',
      `target` char(1) NOT NULL DEFAULT '',
      `titleText` varchar(255) NOT NULL DEFAULT '',
      `linkTitle` varchar(255) NOT NULL DEFAULT '',
      `embed` varchar(255) NOT NULL DEFAULT '',
      `rel` varchar(64) NOT NULL DEFAULT '',
      `useImage` char(1) NOT NULL DEFAULT '',
      `multiSRC` blob,
      `orderSRC` text,
      `useHomeDir` char(1) NOT NULL DEFAULT '',
      `perRow` smallint(5) unsigned NOT NULL DEFAULT '0',
      `perPage` smallint(5) unsigned NOT NULL DEFAULT '0',
      `numberOfItems` smallint(5) unsigned NOT NULL DEFAULT '0',
      `sortBy` varchar(32) NOT NULL DEFAULT '',
      `galleryTpl` varchar(64) NOT NULL DEFAULT '',
      `playerSRC` blob,
      `youtube` varchar(16) NOT NULL DEFAULT '',
      `posterSRC` varchar(255) NOT NULL DEFAULT '',
      `playerSize` varchar(64) NOT NULL DEFAULT '',
      `autoplay` char(1) NOT NULL DEFAULT '',
      `cteAlias` int(10) unsigned NOT NULL DEFAULT '0',
      `articleAlias` int(10) unsigned NOT NULL DEFAULT '0',
      `article` int(10) unsigned NOT NULL DEFAULT '0',
      `form` int(10) unsigned NOT NULL DEFAULT '0',
      `module` int(10) unsigned NOT NULL DEFAULT '0',
      `protected` char(1) NOT NULL DEFAULT '',
      `groups` blob,
      `guests` char(1) NOT NULL DEFAULT '',
      `cssID` varchar(255) NOT NULL DEFAULT '',
      `space` varchar(64) NOT NULL DEFAULT '',
      `invisible` char(1) NOT NULL DEFAULT '',
      `start` varchar(10) NOT NULL DEFAULT '',
      `stop` varchar(10) NOT NULL DEFAULT '',
      `com_order` varchar(32) NOT NULL DEFAULT '',
      `com_perPage` smallint(5) unsigned NOT NULL DEFAULT '0',
      `com_moderate` char(1) NOT NULL DEFAULT '',
      `com_bbcode` char(1) NOT NULL DEFAULT '',
      `com_disableCaptcha` char(1) NOT NULL DEFAULT '',
      `com_requireLogin` char(1) NOT NULL DEFAULT '',
      `com_template` varchar(32) NOT NULL DEFAULT '',
      `pgn_piecesize` int(10) unsigned NOT NULL DEFAULT '46',
      `pgn_pieceset` varchar(255) NOT NULL DEFAULT '',
      `pgn_file` varchar(255) NOT NULL DEFAULT '',
      `pgn_pause` int(10) unsigned NOT NULL DEFAULT '800',
      `pgn_moveformat` varchar(255) NOT NULL DEFAULT '',
      `pgn_boardfirst` char(1) NOT NULL DEFAULT '',
      `pgn_backlink` char(1) NOT NULL DEFAULT '',
      `pgn_coordinates` char(1) NOT NULL DEFAULT '',
      `pgn_autoscroll` char(1) NOT NULL DEFAULT '',
      `pgn_gamestat` varchar(255) NOT NULL DEFAULT '',
      `tagsonly` char(1) NOT NULL DEFAULT '',
      `tags` char(1) NOT NULL DEFAULT '',
      `fen_code` varchar(255) NOT NULL DEFAULT '',
      `fen_figurensatz` varchar(255) NOT NULL DEFAULT '',
      `fen_figurengroesse` int(10) unsigned NOT NULL DEFAULT '35',
      `fen_untertitel` varchar(255) NOT NULL DEFAULT '',
      `fen_koordinaten` char(1) NOT NULL DEFAULT '',
      `fen_brettdrehen` char(1) NOT NULL DEFAULT '',
      `fen_rand` char(1) NOT NULL DEFAULT '',
      `fen_randbreite` int(1) unsigned NOT NULL DEFAULT '1',
      `fen_randfarbe` varchar(6) NOT NULL DEFAULT '',
      `fen_farbeweiss` varchar(6) NOT NULL DEFAULT '',
      `fen_farbeschwarz` varchar(6) NOT NULL DEFAULT '',
      `fen_text` text,
      `fen_textfluss` varchar(255) NOT NULL DEFAULT '',
      `chesstable_csv` text,
      `chesstable_file` varchar(255) NOT NULL DEFAULT '',
      `chesstable_namendrehen` char(1) NOT NULL DEFAULT '',
      `chesstable_lightbox` char(1) NOT NULL DEFAULT '',
      `chesstable_linktext` varchar(255) NOT NULL DEFAULT '',
      `sliderDelay` int(10) unsigned NOT NULL DEFAULT '0',
      `sliderSpeed` int(10) unsigned NOT NULL DEFAULT '300',
      `sliderStartSlide` smallint(5) unsigned NOT NULL DEFAULT '0',
      `sliderContinuous` char(1) NOT NULL DEFAULT '',
      `pa2Album` int(10) unsigned NOT NULL DEFAULT '0',
      `pa2ImageViewTemplate` varchar(64) NOT NULL DEFAULT '',
      `pa2ImagesTemplate` varchar(64) NOT NULL DEFAULT '',
      `pa2ImagesShowHeadline` char(1) NOT NULL DEFAULT '',
      `pa2ImagesShowTitle` char(1) NOT NULL DEFAULT '',
      `pa2ImagesShowTeaser` char(1) NOT NULL DEFAULT '',
      `pa2ImagesImageSize` varchar(64) NOT NULL DEFAULT '',
      `pa2ImagesImageMargin` varchar(128) NOT NULL DEFAULT '',
      `pa2ImagesPerRow` smallint(5) unsigned NOT NULL DEFAULT '2',
      `pa2ImagesPerPage` smallint(5) unsigned NOT NULL DEFAULT '24',
      `pa2NumberOfImages` smallint(5) unsigned NOT NULL DEFAULT '0',
      `pa2ImagesShowMetaDescriptions` char(1) NOT NULL DEFAULT '',
      `pa2ImagesMetaFields` blob,
      `pa2TimeFilter` char(1) NOT NULL DEFAULT '',
      `pa2TimeFilterStart` varchar(64) NOT NULL DEFAULT '',
      `pa2TimeFilterEnd` varchar(64) NOT NULL DEFAULT '',
      `pa2Teaser` int(10) unsigned NOT NULL DEFAULT '0',
      `usemap` varchar(64) NOT NULL DEFAULT '',
      `pgn_download` char(1) NOT NULL DEFAULT '',
      `pgn_titleText` varchar(255) NOT NULL DEFAULT '',
      `pgn_linkTitle` varchar(255) NOT NULL DEFAULT '',
      `tag_filter` varchar(255) NOT NULL DEFAULT '',
      `tag_ignore` char(1) NOT NULL DEFAULT '',
      `remark_icon` varchar(255) NOT NULL DEFAULT 'info',
      `poll` int(10) unsigned NOT NULL DEFAULT '0',
      `poll_current` char(1) NOT NULL DEFAULT '',
      `dlh_googlemap` int(10) unsigned NOT NULL DEFAULT '0',
      `dlh_googlemap_zoom` int(10) unsigned NOT NULL DEFAULT '0',
      `dlh_googlemap_size` varchar(255) NOT NULL DEFAULT '',
      `dlh_googlemap_static` char(1) NOT NULL DEFAULT '',
      `dlh_googlemap_url` varchar(255) NOT NULL DEFAULT '',
      `simple_columns` char(3) NOT NULL DEFAULT '',
      `simple_columns_rowspan` int(10) unsigned NOT NULL DEFAULT '0',
      `simple_columns_close` char(1) NOT NULL DEFAULT '',
      `simple_columns_wrapper` char(1) NOT NULL DEFAULT '',
      `simple_columns_autoheight` char(1) NOT NULL DEFAULT '',
      `simple_columns_border` char(1) NOT NULL DEFAULT '',
      `ical_calendar` blob,
      `ical_prefix` varchar(128) NOT NULL DEFAULT '',
      `ical_start` varchar(12) NOT NULL DEFAULT '',
      `ical_end` varchar(12) NOT NULL DEFAULT '',
      `movie_controls` char(1) NOT NULL DEFAULT '',
      `movie_preload` char(1) NOT NULL DEFAULT '',
      `movie_autoplay` char(1) NOT NULL DEFAULT '',
      `movie_loop` char(1) NOT NULL DEFAULT '',
      `movie_width` varchar(5) NOT NULL DEFAULT '',
      `movie_height` varchar(5) NOT NULL DEFAULT '',
      `movie_preview` varchar(255) NOT NULL DEFAULT '',
      `movie_webm` varchar(255) NOT NULL DEFAULT '',
      `movie_mp4` varchar(255) NOT NULL DEFAULT '',
      `movie_ogg` varchar(255) NOT NULL DEFAULT '',
      `audio_controls` char(1) NOT NULL DEFAULT '',
      `audio_preload` char(1) NOT NULL DEFAULT '',
      `audio_autoplay` char(1) NOT NULL DEFAULT '',
      `audio_loop` char(1) NOT NULL DEFAULT '',
      `audio_webm` varchar(255) NOT NULL DEFAULT '',
      `audio_mp3` varchar(255) NOT NULL DEFAULT '',
      `audio_ogg` varchar(255) NOT NULL DEFAULT '',
      `audio_order` blob,
      `movie_order` blob,
      `tabType` varchar(32) NOT NULL DEFAULT '',
      `tabClasses` varchar(255) NOT NULL DEFAULT '',
      `tabBehaviour` varchar(64) NOT NULL DEFAULT '',
      `tab_autoplay_autoSlide` char(1) NOT NULL DEFAULT '0',
      `tab_autoplay_fade` char(1) NOT NULL DEFAULT '0',
      `tab_autoplay_delay` int(10) NOT NULL DEFAULT '2500',
      `tabControlCookies` varchar(128) NOT NULL DEFAULT '',
      `tab_tabs` blob,
      `tab_template` varchar(64) NOT NULL DEFAULT '',
      `tab_template_start` varchar(64) NOT NULL DEFAULT '',
      `tab_template_stop` varchar(64) NOT NULL DEFAULT '',
      `tab_template_end` varchar(64) NOT NULL DEFAULT '',
      `tabTitles` blob,
      `metamodel_jumpTo` int(10) unsigned NOT NULL DEFAULT '0',
      `metamodel` int(10) unsigned NOT NULL DEFAULT '0',
      `metamodel_layout` varchar(64) NOT NULL DEFAULT '',
      `metamodel_use_limit` char(1) NOT NULL DEFAULT '',
      `metamodel_limit` smallint(5) NOT NULL DEFAULT '0',
      `metamodel_offset` smallint(5) NOT NULL DEFAULT '0',
      `metamodel_sortby` varchar(64) NOT NULL DEFAULT '',
      `metamodel_sortby_direction` varchar(4) NOT NULL DEFAULT '',
      `metamodel_filtering` int(10) NOT NULL DEFAULT '0',
      `metamodel_rendersettings` int(10) NOT NULL DEFAULT '0',
      `metamodel_noparsing` char(1) NOT NULL DEFAULT '',
      `metamodel_donotindex` char(1) NOT NULL DEFAULT '',
      `metamodel_available_values` char(1) NOT NULL DEFAULT '',
      `metamodel_filterparams` longblob,
      `metamodel_fef_params` blob,
      `metamodel_fef_autosubmit` char(1) NOT NULL DEFAULT '',
      `metamodel_fef_hideclearfilter` char(1) NOT NULL DEFAULT '',
      `metamodel_fef_template` varchar(64) NOT NULL DEFAULT '',
      `metamodel_meta_title` varchar(64) NOT NULL DEFAULT '',
      `metamodel_meta_description` varchar(64) NOT NULL DEFAULT '',
      `dma_eg_data` longtext,
      `npsType` varchar(32) NOT NULL DEFAULT '',
      `npsSizeMode` varchar(32) NOT NULL DEFAULT '',
      `npsWidth` varchar(255) NOT NULL DEFAULT '',
      `npsHeight` varchar(255) NOT NULL DEFAULT '',
      `npsAdaptiveHeight` char(1) NOT NULL DEFAULT '',
      `npsAdaptiveHeightSpeed` varchar(255) NOT NULL DEFAULT '',
      `npsSlideMargin` varchar(255) NOT NULL DEFAULT '',
      `npsMode` varchar(255) NOT NULL DEFAULT '',
      `npsSpeed` varchar(255) NOT NULL DEFAULT '',
      `npsInfiniteLoop` char(1) NOT NULL DEFAULT '',
      `npsRandomStart` char(1) NOT NULL DEFAULT '',
      `npsCaptions` char(1) NOT NULL DEFAULT '',
      `npsHideControlOnEnd` char(1) NOT NULL DEFAULT '',
      `npsStartSlide` varchar(255) NOT NULL DEFAULT '',
      `npsPreloadImages` varchar(255) NOT NULL DEFAULT '',
      `npsEnableEasing` char(1) NOT NULL DEFAULT '',
      `npsEasingMode` varchar(255) NOT NULL DEFAULT '',
      `npsEasing` varchar(255) NOT NULL DEFAULT '',
      `npsControls` char(1) NOT NULL DEFAULT '',
      `npsPrevText` varchar(255) NOT NULL DEFAULT '',
      `npsNextText` varchar(255) NOT NULL DEFAULT '',
      `npsPrevImage` varchar(255) NOT NULL DEFAULT '',
      `npsNextImage` varchar(255) NOT NULL DEFAULT '',
      `npsOwnNavContainer` char(1) NOT NULL DEFAULT '',
      `npsPrevSelector` varchar(255) NOT NULL DEFAULT '',
      `npsNextSelector` varchar(255) NOT NULL DEFAULT '',
      `npsAutoControls` char(1) NOT NULL DEFAULT '',
      `npsAutoControlsCombine` char(1) NOT NULL DEFAULT '',
      `npsStartText` varchar(255) NOT NULL DEFAULT '',
      `npsStopText` varchar(255) NOT NULL DEFAULT '',
      `npsTicker` char(1) NOT NULL DEFAULT '',
      `npsTickerHover` char(1) NOT NULL DEFAULT '',
      `npsUseCSS` char(1) NOT NULL DEFAULT '',
      `npsVideo` char(1) NOT NULL DEFAULT '',
      `npsAuto` char(1) NOT NULL DEFAULT '',
      `npsAutoHover` char(1) NOT NULL DEFAULT '',
      `npsAutoStart` char(1) NOT NULL DEFAULT '',
      `npsPause` varchar(5) NOT NULL DEFAULT '',
      `npsAutoDelay` varchar(5) NOT NULL DEFAULT '',
      `npsAutoDirection` varchar(255) NOT NULL DEFAULT '',
      `npsDisplaySlide` char(1) NOT NULL DEFAULT '',
      `npsMinSlides` char(4) NOT NULL DEFAULT '',
      `npsMaxSlides` char(4) NOT NULL DEFAULT '',
      `npsMoveSlides` char(4) NOT NULL DEFAULT '',
      `npsSlideWidth` char(4) NOT NULL DEFAULT '',
      `npsTouchEnabled` char(1) NOT NULL DEFAULT '',
      `npsOneToOneTouch` char(1) NOT NULL DEFAULT '',
      `npsSwipeThreshold` varchar(255) NOT NULL DEFAULT '',
      `npsPreventDefaultSwipeX` char(1) NOT NULL DEFAULT '',
      `npsPreventDefaultSwipeY` char(1) NOT NULL DEFAULT '',
      `npsPager` char(1) NOT NULL DEFAULT '',
      `npsPagerType` varchar(255) NOT NULL DEFAULT '',
      `npsPagerShortSeparator` varchar(255) NOT NULL DEFAULT '',
      `npsPagerSelector` varchar(255) NOT NULL DEFAULT '',
      `npsPagerCustom` varchar(255) NOT NULL DEFAULT '',
      `npsCallbacks` char(1) NOT NULL DEFAULT '',
      `npsOnSliderLoad` mediumtext,
      `npsOnSlideBefore` mediumtext,
      `npsOnSlideAfter` mediumtext,
      `npsOnSlideNext` mediumtext,
      `npsOnSlidePrev` mediumtext,
      `npsBuildPager` mediumtext,
      `lightboxSocialVideoLink` varchar(255) NOT NULL DEFAULT '',
      `lightboxopenonpageload` char(1) NOT NULL DEFAULT '',
      `lightboxUseImage` char(1) NOT NULL DEFAULT '',
      `lightboximageSRC` varchar(255) NOT NULL DEFAULT '',
      `lightboxoverflow` char(1) NOT NULL DEFAULT '',
      `lightboxmargin` varchar(128) NOT NULL DEFAULT '',
      `lightboxfontcolor` varchar(6) NOT NULL DEFAULT '',
      `lightboxbgcolor` varchar(6) NOT NULL DEFAULT '',
      `lightboxsize` varchar(64) NOT NULL DEFAULT '',
      `lightboxlabel` varchar(64) NOT NULL DEFAULT '',
      `lightboxcaption` varchar(255) NOT NULL DEFAULT '',
      `lightboxdescription` varchar(255) NOT NULL DEFAULT '',
      `chesstable_aufsteiger` varchar(255) NOT NULL DEFAULT '',
      `chesstable_absteiger` varchar(255) NOT NULL DEFAULT '',
      `chesstable_markieren` varchar(255) NOT NULL DEFAULT '',
      `chesstable_flaggen` char(1) NOT NULL DEFAULT '',
      `zad_aplayer_capfile` binary(16) DEFAULT NULL,
      `tab_remember` char(1) NOT NULL DEFAULT '',
      `newslinklist` blob,
      `newslinklist_stopdate` varchar(10) NOT NULL DEFAULT '',
      `newslinklist_tpl` varchar(32) NOT NULL DEFAULT '',
      `adresse_id` int(10) unsigned NOT NULL DEFAULT '0',
      `adresse_zusatz` varchar(128) NOT NULL DEFAULT '',
      `adresse_funktion` varchar(255) NOT NULL DEFAULT '',
      `adresse_tpl` varchar(32) NOT NULL DEFAULT '',
      `adresse_viewfoto` char(1) NOT NULL DEFAULT '',
      `nitsche` text NOT NULL,
      PRIMARY KEY (`id`),
      KEY `pid` (`pid`),
      KEY `ptable` (`ptable`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18118 ;
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, es ist halt genau so, wie es in der Fehlermeldung steht: Row size too large. Mehr als 65535 Bytes geht halt nicht in MySQL, nicht mal in der neuesten Version. Da gibt es offenbar keinen Unterschied zwischen 5.0 und 5.7. Die mögliche Lösung steht auch gleich in der Fehlermeldung: You have to change some columns to TEXT or BLOBs. Ein VARCHAR(255) UTF8 zählt dabei als 767 Bytes. Da bist du schnell am Limit.

    http://dev.mysql.com/doc/refman/5.5/...unt-limit.html

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Das bestätigt einmal mehr, sich genau zu überlegen wieviel Zeichen man für eine Variable benötigt.

    Wieviel Speicherplatz benötigen denn die ganzen Typen, deren Länge nicht über die Zahl dahinter festgelegt wird? Und vor allen Dingen, wo werden die gespeichert, wenn die Zeilenlänge ja nicht länger als 65535 Byte sein darf? Die haben doch dann sicher ihren "Kosmos" woanders, so wie bei dBASE die DBT-Dateien. In der Tabelle wird wohl dann nur noch ein Zeiger (4 Byte?) auf die Position im anderen "Kosmos" stehenbleiben.
    Und warum überhaupt genau 65535 bzw. 65536 (die 0 wird wohl weggelassen...). Hat MySQL nur 2 Byte (65536 Bit) zur Verfügung, um eine Zeilenlänge zu speichern?

    P.S. Mein letztes Feld (nitsche) in der Tabelle war nur ein Test. Als VARCHAR(255) konnte ich es nicht anlegen, aber als TEXT.
    Geändert von Samson1964 (12.09.2014 um 03:35 Uhr)
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    Mein letztes Feld (nitsche) in der Tabelle war nur ein Test. Als VARCHAR(255) konnte ich es nicht anlegen, aber als TEXT.
    Weil TEXT wie BLOB ausserhalb der Tabelle gespeichert wird: http://dev.mysql.com/doc/refman/5.0/...uirements.html

    Am Rande: ein INT(10) ist nicht sparsamer als ein INT (immer 4 Byte; http://dev.mysql.com/doc/refman/5.1/...ric-types.html),
    d.h. in Deiner Auflistung oben kann man nicht alle "Zahlen dahinter" summieren.

    M.E. geht es nicht nur um den sparsamen Einsatz von Zeichen bei der Feldbreite. Es ist eher ein Designproblem, daß in tl_content et al. alle Erweiterungen ihre Spalten anhängen und diese Tabellen damit immer breiter -- und damit auch unübersichtlicher -- werden.

  5. #5
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    So sehe ich das auch. Zumal, wenn ich das richtig verstehe, die meisten Spalten der Tabelle gar nicht genutzt werden. Jede Erweiterung nutzt die Spalten, die sie für sich definiert hat, für ihre Content Elemente - und eben die paar Spalten, die allen gemeinsam sind (ID, ...). Die Spalten aller anderen Erweiterungen bleiben leer ... Könnte man da nicht ein paar Spalten einfach vordefinieren für Erweiterungen, die dann von allen verwendet werden könnten? Was weiss ich, ein paar varchar(255), varchar(64), usw. Die könnte dann jede Erweiterung zunächst mal nutzen und erst wenn die nicht reichen, kämen weitere Spalten dazu.

  6. #6
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Gute Idee. Dabei geht dann aber ein Stück der Funktionalität von Contao verloren, z.B. wenn ein Benutzer ein Element 1 anlegt, später daraus ein Element 2 macht und noch später wieder zu Element 1 zurückwechselt. Da wären evtl. Daten vom Element 1 mit denen von Element 2 überschrieben worden. Zugegeben, sowas kommt nicht oft vor. Und eigentlich ist dafür ja die Wiederherstellen-Funktion da.

    Bei meinem ersten Inhaltselement (fen_ in der Tabelle) habe ich gedacht, mich möglichst abgrenzen zu müssen von den vorhandenen Feldern. Deshalb sind eigentlich unsinnige Felder entstanden (fen_untertitel, fen_text). Beim letzten Inhaltselement (adresse_) nutze ich bereits zum Großteil Core-Felder. Noch mehr Core-Felder könnte man nutzen, wenn die Language-Variablen usw. austauschbar wären. Leider überschreibt man damit mitunter den Core-DCA, auch wenn das Inhaltselement im Moment keine Rolle spielt.

    Beispiel: Will ich singleSRC in meinem Element nutzen, würde ich gern die Werte von label und eval für mein Element anpassen. Das darf ich aber nicht machen. Wenn nämlich der Benutzer das Core-Bildelement auswählt, hat er im schlimmsten Fall mein manipuliertes label/eval dort zu stehen. Ergo macht jeder Element-Pogrammierer sein eigenes SRC-Feld, obwohl es sich in fast nichts vom Original unterscheidet.
    Wahrscheinlich wäre hier eine Lösung den DCA des gerade aktiven Elements nochmal einzulesen. Dann könnte man wirklich für fast alles die vorgefertigten Core-Felder nehmen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  7. #7
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Könnte man da nicht ein paar Spalten einfach vordefinieren für Erweiterungen, die dann von allen verwendet werden könnten?
    Dann bekommst Du aber ein Problem mit dem DCA. So, wie das Konzipiert ist, würde es nicht (schön) funktionieren). Bsp.:


    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['palettes']['MeinModul'] = '{title_legend},name,headline,type;{config_legend},common_field_1,common_field_2;

    $GLOBALS['
    TL_DCA']['tl_module']['palettes']['MeinAnderesModul'] = '{title_legend},name,headline,type;{config_legend},common_field_1,common_field_2,common_field_3
    und dann definiertst Du im DCA

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['fields']['sparteninfo'] = array
      (
       
    'label' => &$GLOBALS['TL_LANG']['MeinModul']['common_field_1'],
       
    'exclude' => false,
       
    'inputType' => 'was auch immer',
       
    'eval' => array( ... ),
      ); 
    und das passt sicher nicht für alle Module gleichzeitig.

  8. #8
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Klar, sowas würde bestimmt größere Änderungen im Core benötigen. Und ein entsprechendes Redesign für bereits bestehende Erweiterungen. Alles in allem wohl ein zu großer Aufwand. Und das Update stelle ich mir dann auch nicht ganz einfach vor. Wenn man mal sieht, was allein die Umstellung des Dateisystems für Probleme nach sich gezogen hat.

    Vielleicht ist es wirklich am besten, einfach bei dafür gut geeigneten Feldern TEXT statt varchar(255) zu verwenden. TINYTEXT reicht ja leider nicht, weil da nur 255 Bytes gespeichert werden können, was wegen UTF8 wohl nur maximal 85 Zeichen bedeuten würde. Das Limit von 65535 Bytes für die row size ist ja bisher auch noch nicht von vielen Installationen erreicht worden.

  9. #9
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Das Limit von 65535 Bytes für die row size ist ja bisher auch noch nicht von vielen Installationen erreicht worden.
    Ist das ein Grund zur Freude oder zum Heulen?!
    Ich werde mir auf jeden Fall mal anschauen, was ich nicht unbedingt an externen Inhaltselementen brauche und wie ich meine eigenen Erweiterungen optimieren kann.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  10. #10
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Würde sagen, für die meisten von uns ein Grund zur Freude, für dich eher zum Heulen.
    Klar, wenn du Spalten entbehren kannst, dann hau sie raus. Ansonsten leg sie als TEXT an anstatt varchar(255). Dann werden sie extern gespeichert, sollten aber weitestgehend genauso funktionieren wie die varchars.

  11. #11
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    sollten aber weitestgehend genauso funktionieren
    Wenn ich mich hier noch richtig erinnere und es damals richtig verstanden habe: Funktionalität ist identisch, ist aber ein Performance Problem, da die Daten nicht mit dem Rest der aktuellen Zeile vorliegen sondern extra geholt werden müssen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  12. #12
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das ist wohl richtig. Aber alles ist besser als wenn es gar nicht mehr geht .

  13. #13
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    648
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    *rauskram* und wie gehe ich da genau vor, wenn ich auf diese Fehlermeldung stoße? Hab grad ein Theme geupdated ???? und stoße auf denselben Fehler. Wie genau wandle ich die Fehler um und was genau bedeutet "some"?

    Code:
    [2020-03-31 22:56:59] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'ALTER TABLE tl_content ADD playerCaption VARCHAR(255) DEFAULT '' NOT NULL':  SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs" at /mnt/web016/c1/36/5209636/htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 106 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_content ADD playerCaption VARCHAR(255) DEFAULT '' NOT NULL':\n\nSQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at .../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:106, Doctrine\\DBAL\\Driver\\PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at /.../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:80, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at /.../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:75)"} []

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.084
    Partner-ID
    10107

    Standard

    In manchen Fällen hilft es, wenn du die Datenbank Updates einzeln ausführen lässt.

  15. #15
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    648
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Das ist der letzte, der übrig ist und ohne den komm ich zwar ins Backend, aber nicht ins Frontend.

    Bin auf 4.4 zurückgerollt, würde es aber trotzdem gerne wissen.

  16. #16
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von k-webdesign Beitrag anzeigen
    *rauskram* und wie gehe ich da genau vor, wenn ich auf diese Fehlermeldung stoße? Hab grad ein Theme geupdated ???? und stoße auf denselben Fehler. Wie genau wandle ich die Fehler um und was genau bedeutet "some"?

    Code:
    [2020-03-31 22:56:59] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'ALTER TABLE tl_content ADD playerCaption VARCHAR(255) DEFAULT '' NOT NULL':  SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs" at /mnt/web016/c1/36/5209636/htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 106 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_content ADD playerCaption VARCHAR(255) DEFAULT '' NOT NULL':\n\nSQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at .../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:106, Doctrine\\DBAL\\Driver\\PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at /.../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:80, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs at /.../htdocs/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:75)"} []
    Das Problem ist, dass die Tabellenzeile zu lang ist (gemessen an der Zeichenanzahl). "some" bedeutet in dem Zusammenhang "some" :-). Es müssen einige Felder kleiner angelegt werden, also von der SQL-Länge beschränkt werden. Welche in deiner Situation am ehesten gekürzt werden können, muss man konkret schauen. Manche Extensions sind sehr großzügig beim Vergeben deren Spaltenlänge.

  17. #17
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hatte das letztens auch. Dort hat ein Theme nahezu 300 eigene Felder in der tl_content angelegt. Ich habe in dem Fall empfohlen, das Theme zu wechseln und die Seite weitestgehend neu aufzubauen, u.a. auch weil der Theme-Ersteller für die Kundin nicht oder kaum erreichbat war.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  18. #18
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    648
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Nee, das Theme wechseln ist keine Option. Gar keine ???? Den Aufwand bezahlt mir keiner und unter 4.4 läuft es ja

  19. #19
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dann bleibt halt nur, einige der varchars in text umzuwandeln. Am besten solche, auf die nicht allzu oft zugegriffen wird. Wenn du nur durch das Update auf 4.9 über die Grenze gekommen bist, kannst du auch nicht allzu weit drüber liegen, da reichen dann schon ein oder zwei größere varchars.

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.084
    Partner-ID
    10107

    Standard

    Zitat Zitat von k-webdesign Beitrag anzeigen
    Nee, das Theme wechseln ist keine Option. Gar keine ???? Den Aufwand bezahlt mir keiner und unter 4.4 läuft es ja
    Füge folgendes in deine config.yml ein:
    Code:
    doctrine:
        dbal:
            connections:
                default:
                    default_table_options:
                        charset: utf8
                        collate: utf8_unicode_ci
    Baue den Symfony Application Cache danach neu auf und versuche es im Install Tool dann nochmal.

  21. #21
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Wenn du nur durch das Update auf 4.9 über die Grenze gekommen bist, kannst du auch nicht allzu weit drüber liegen, da reichen dann schon ein oder zwei größere varchars.
    In Contao 4.4 wird das noch MYISAM gewesen sein und nicht INNODB.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  22. #22
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    @Spooky Reicht die Änderung der Kollation da nach Deiner Erfahrung schon häufig aus?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  23. #23
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.084
    Partner-ID
    10107

    Standard

    Ich habe solche Probleme nicht, daher auch keine persönliche Erfahrung damit . utf8mb4 verbraucht glaube ich auch eine größere row size, deshalb der Vorschlag. Auf MyISAM umzustellen könnte auch helfen, ja.

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
  •