Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: Datenbank-Update (Contao 3.5. auf 4.4) schlägt fehl

  1. #1
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard Datenbank-Update (Contao 3.5. auf 4.4) schlägt fehl

    Hallo,

    ich habe mich bei einem Update von Contao 3.5. -> auf 4.4. an folgende Anleitung(en) gehalten:

    https://community.contao.org/de/show...ao-3-5-auf-4-4
    https://www.gruenfisch-webdesign.de/...f-4-4-lts.html



    Stand jetzt ist also:

    Contao 4.4. komplett neu und leer aufgesetzt
    DB von 3.5 in neue DB für das neue Contao kopiert
    /files und /templates kopiert

    und dann Contao-Install aufgerufen, um die DB zu aktualisieren

    An dem Punkt, wo man die DB aktualisieren soll (und keine Spalten / Tabellen löschen soll) schlägt allerdings fehl.
    Bei der "Spalten ändern" Anweisungen

    ALTER TABLE tl_article CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL

    bekomme ich einen Fehler

    PHP-Code:

    [2019-12-04 14:12:00request.INFOMatched route "contao_install". {"route":"contao_install","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction","_route":"contao_install"},"request_uri":"http://update.xyz.de/contao/install","method":"POST"} []

    [
    2019-12-04 14:12:01app.CRITICALAn exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_article CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL':\n\nSQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key at /vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:106, Doctrine\\DBAL\\Driver\\PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key at /vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:80, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key at /vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:75)"} [] 
    Was läuft hier falsch?

    Danke

    Mark

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

    Standard

    Zitat Zitat von Mark Knochen Beitrag anzeigen
    DB von 3.5 in neue DB für das neue Contao kopiert
    Wie hast du das durchgeführt?

  3. #3
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    den Dump vom Contao 3.5 per phpMyAdmin in die neue DB gespielt.

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

    Standard

    Überprüfe mal die Tabellendefinition von tl_article in diesem dump (bzw. poste sie hier).

  5. #5
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    das wäre die hier:

    PHP-Code:


    CREATE TABLE 
    `tl_article` (
      `
    idint(10UNSIGNED NOT NULL,
      `
    pidint(10UNSIGNED NOT NULL DEFAULT '0',
      `
    sortingint(10UNSIGNED NOT NULL DEFAULT '0',
      `
    tstampint(10UNSIGNED NOT NULL DEFAULT '0',
      `
    titlevarchar(255NOT NULL DEFAULT '',
      `
    aliasvarchar(128CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
      `
    authorint(10UNSIGNED NOT NULL DEFAULT '0',
      `
    inColumnvarchar(32NOT NULL DEFAULT '',
      `
    keywordstext,
      `
    showTeaserchar(1NOT NULL DEFAULT '',
      `
    teaserCssIDvarchar(255NOT NULL DEFAULT '',
      `
    teasertext,
      `
    printablevarchar(255NOT NULL DEFAULT '',
      `
    customTplvarchar(64NOT NULL DEFAULT '',
      `
    protectedchar(1NOT NULL DEFAULT '',
      `
    groupsblob,
      `
    guestschar(1NOT NULL DEFAULT '',
      `
    cssIDvarchar(255NOT NULL DEFAULT '',
      `
    spacevarchar(64NOT NULL DEFAULT '',
      `
    publishedchar(1NOT NULL DEFAULT '',
      `
    startvarchar(10NOT NULL DEFAULT '',
      `
    stopvarchar(10NOT NULL DEFAULT '',
      `
    tagschar(1NOT NULL DEFAULT '',
      `
    tags_showtagschar(1NOT NULL DEFAULT '',
      `
    tags_max_tagssmallint(5UNSIGNED NOT NULL DEFAULT '0',
      `
    tags_relevancechar(1NOT NULL DEFAULT '',
      `
    tags_jumptosmallint(5UNSIGNED NOT NULL DEFAULT '0'
    ENGINE=MyISAM DEFAULT CHARSET=utf8

  6. #6
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Normalerweise hat die id bei Contao immer ein AUTO_INCREMENT

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

    Standard

    Ja, entweder ist die Original Datenbank schon kaputt - oder der Export.

  8. #8
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Stimmt, interessant, dass der Export aus phpMyAdmin das nicht berücksichtigt hat, aber das kann ich ja so nochmal testen ....

  9. #9
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Komisch, die Option:

    CREATE TABLE-Befehl hinzufügen
    AUTO_INCREMENT Wert

    ist aktiv, wird aber nicht berücksichtigt ... wie mache ich denn den Dump dann korrekt?

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

    Standard

    Code:
    mysqldump --user=my_user --password --hex-blob my_database > my_dump.sql

  11. #11
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    ... oder BackupDB installieren und damit ein Backup der Datenbank machen.

  12. #12
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Offenbar war der Dump wegen der Größe nicht komplett eingelesen worden .... das war es wohl.

    Dann schlag ich mich mal weiter durch, jQuery schlägt noch fehl, templates sind wohl noch schief ....

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
  •