Ergebnis 1 bis 6 von 6

Thema: [gelöst] Update von 3.0.6 auf 3.5.2 - Tabellen prüfen

  1. #1
    Contao-Nutzer
    Registriert seit
    29.10.2013.
    Beiträge
    23

    Standard [gelöst] Update von 3.0.6 auf 3.5.2 - Tabellen prüfen

    Hallo,

    ich habe eine Contao 3.0.6 Installation lokal über XAMPP laufen.
    Jetzt möchte ich aber (bevor ich es online mache) ein Update auf 3.5.x testen.
    Im installtool ist alles i.O. bis auf die Aktualisierung der Datenbank.
    Code:
    Neue Spalten anlegen
    		
    ALTER TABLE `tl_files` ADD KEY `path` (`path`(333));
    ALTER TABLE `tl_form` ADD `novalidate` char(1) NOT NULL default '';
    ALTER TABLE `tl_form_field` ADD `minlength` int(10) unsigned NOT NULL default '0';
    ALTER TABLE `tl_form_field` ADD `customTpl` varchar(64) NOT NULL default '';
    ALTER TABLE `tl_layout` ADD `loadingOrder` varchar(16) NOT NULL default '';
    ALTER TABLE `tl_layout` ADD `picturefill` char(1) NOT NULL default '';
    ALTER TABLE `tl_layout` ADD `titleTag` varchar(255) NOT NULL default '';
    ALTER TABLE `tl_module` ADD `customTpl` varchar(64) NOT NULL default '';
    ALTER TABLE `tl_module` ADD `orderPages` blob NULL;
    ALTER TABLE `tl_page` ADD KEY `pid_type_start_stop_published` (`pid`, `type`, `start`, `stop`, `published`);
    ALTER TABLE `tl_style_sheet` ADD `disablePie` char(1) NOT NULL default '';
    ALTER TABLE `tl_calendar_events` ADD `location` varchar(255) NOT NULL default '';
    ALTER TABLE `tl_calendar_events` ADD KEY `alias` (`alias`);
    ALTER TABLE `tl_calendar_events` ADD KEY `pid_start_stop_published` (`pid`, `start`, `stop`, `published`);
    ALTER TABLE `tl_comments` ADD KEY `published` (`published`);
    ALTER TABLE `tl_comments` ADD KEY `source_parent_published` (`source`, `parent`, `published`);
    ALTER TABLE `tl_comments_notify` ADD KEY `source_parent_tokenConfirm` (`source`, `parent`, `tokenConfirm`);
    ALTER TABLE `tl_faq` ADD KEY `pid_published_sorting` (`pid`, `published`, `sorting`);
    ALTER TABLE `tl_news` ADD KEY `pid_start_stop_published` (`pid`, `start`, `stop`, `published`);
    ALTER TABLE `tl_newsletter_recipients` ADD `confirmed` varchar(10) NOT NULL default '';
    
    Bestehende Spalten ändern
    	
    ALTER TABLE `tl_article` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_cron` CHANGE `name` `name` varchar(32) NULL;
    ALTER TABLE `tl_files` CHANGE `path` `path` varchar(1022) NOT NULL default '';
    ALTER TABLE `tl_files` CHANGE `name` `name` varchar(255) NOT NULL default '';
    ALTER TABLE `tl_form` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_form` CHANGE `recipient` `recipient` varchar(1022) NOT NULL default '';
    ALTER TABLE `tl_layout` CHANGE `viewport` `viewport` varchar(255) NOT NULL default '';
    ALTER TABLE `tl_layout` CHANGE `analytics` `analytics` text NULL;
    ALTER TABLE `tl_member` CHANGE `language` `language` varchar(5) NOT NULL default '';
    ALTER TABLE `tl_module` CHANGE `cal_startDay` `cal_startDay` smallint(5) unsigned NOT NULL default '1';
    ALTER TABLE `tl_page` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_page` CHANGE `language` `language` varchar(5) NOT NULL default '';
    ALTER TABLE `tl_search` CHANGE `language` `language` varchar(5) NOT NULL default '';
    ALTER TABLE `tl_search_index` CHANGE `word` `word` varchar(64) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_search_index` CHANGE `language` `language` varchar(5) NOT NULL default '';
    ALTER TABLE `tl_session` CHANGE `hash` `hash` varchar(40) NULL;
    ALTER TABLE `tl_style` CHANGE `selector` `selector` varchar(1022) NOT NULL default '';
    ALTER TABLE `tl_style_sheet` CHANGE `name` `name` varchar(64) NULL;
    ALTER TABLE `tl_user` CHANGE `username` `username` varchar(64) COLLATE utf8_bin NULL;
    ALTER TABLE `tl_user` CHANGE `language` `language` varchar(5) NOT NULL default '';
    ALTER TABLE `tl_calendar_events` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_calendar_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_faq` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_news_feed` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    ALTER TABLE `tl_newsletter` CHANGE `alias` `alias` varchar(128) COLLATE utf8_bin NOT NULL default '';
    Nach dem Klick auf Datenbank aktualisieren wird mir folgendes angezeigt:

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys (ALTER TABLE `tl_files` ADD KEY `path` (`path`(333));) thrown in C:\xampp\htdocs\xxx\system\modules\core\library\Contao\Database\Statement.php on line 295
    
    #0 C:\xampp\htdocs\xxx\system\modules\core\library\Contao\Database.php(207): Contao\Database\Statement->query('ALTER TABLE `tl...')
    #1 C:\xampp\htdocs\xxx\system\modules\core\controllers\BackendInstall.php(608): Contao\Database->query('ALTER TABLE `tl...')
    #2 C:\xampp\htdocs\xxx\system\modules\core\controllers\BackendInstall.php(175): Contao\BackendInstall->adjustDatabaseTables()
    #3 C:\xampp\htdocs\xxx\contao\install.php(24): Contao\BackendInstall->run()
    #4 {main}
    Da bin ich etwas überfragt und suche nach eine Lösung.

    MfG
    Frank
    Geändert von mimamoep (28.07.2015 um 08:10 Uhr)

  2. #2
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Nach Updates von einer auf die nächste Version ist es manchmal notwendig, alte Dateien zu entfernen.
    Falls Du das nicht gemacht hast, kann dir easyupdate3 weiterhelfen:
    http://contao.ninja

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.519
    User beschenken
    Wunschliste

    Standard

    Diese Anweisung:
    Code:
    ALTER TABLE `tl_files` ADD KEY `path` (`path`(333));
    hat schon öfters Probleme gemacht unter Windows/XAMPP. Ich habe langsam die Vermutung, dort ist eine zu alte MySQL DB installiert.

    Andererseits könnte die Fehlermeldung
    Code:
    the used length is longer than the key part
    auch so gedeutet werden, dass der auf 333 Zeichen verkürzte Key nicht angelegt werden kann, da der originale bereits größer ist.

    Eine Lösung wäre, dass entsprechende DCA File wo die Definition des Keys drinsteht abzuändern und dann nochmal die install aufzurufen.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Contao-Nutzer
    Registriert seit
    29.10.2013.
    Beiträge
    23

    Standard

    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Nach Updates von einer auf die nächste Version ist es manchmal notwendig, alte Dateien zu entfernen.
    Falls Du das nicht gemacht hast, kann dir easyupdate3 weiterhelfen:
    http://contao.ninja
    Damit hat es dann auch funktioniert.
    Habe im Installtool Schritt für Schritt die alten Tabellen gelöscht, vorhandene Tabellen upgedatet und neue hinzugefügt.
    Vielen Dank.

    MfG
    Frank

  5. #5
    Contao-Nutzer
    Registriert seit
    20.07.2011.
    Beiträge
    1

    Standard

    Bei mir hat es funktioniert, die Zeile
    Code:
    ALTER TABLE `tl_files` ADD KEY `path` (`path`(333));
    im ersten Durchgang zu deaktivieren.
    Im zweiten Durchgang (nur dieser Eintrag stand dann noch zur Auswahl) hat es auch mit obiger Zeile geklappt.

    Ich denke, die Reihenfolge der Änderungen spielt hier eine entsprechende Rolle...

    Viele Grüße
    shape

  6. #6
    Contao-Nutzer
    Registriert seit
    07.04.2017.
    Beiträge
    5

    Frage Ähnliche Problematik beim DB Update?

    Hallo,

    bei mir hat folgende Aufgabenstellung der Aktualisierung der Datenbank tolle Auswirkungen gehabt:

    Neue Spalten anlegen


    ALTER TABLE `tl_files` ADD KEY `path` (`path`(333));
    Bestehende Spalten ändern

    Alle auswählen

    ALTER TABLE `tl_files` CHANGE `path` `path` varchar(1022) NOT NULL default '';

    Fehlermeldung

    Fatal error: Uncaught exception Exception with message Query error: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys (ALTER TABLE `tl_files` ADD KEY `path` (`path`(333)) 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/controllers/BackendInstall.php(616): Contao\Database->query('ALTER TABLE `tl...')
    #2 system/modules/core/controllers/BackendInstall.php(177): Contao\BackendInstall->adjustDatabaseTables()
    #3 contao/install.php(24): Contao\BackendInstall->run()
    #4 {main}

    Hat da jemand eine gute Lösung?

    Fritz


    Gruß

    Fritz

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
  •