Contao-Camp 2024
Ergebnis 1 bis 14 von 14

Thema: Datenbank lässt sich nicht updaten (Contao-Manager)

  1. #1
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Fehler Datenbank lässt sich nicht updaten (Contao-Manager)

    Hi zusammen,

    ich habe eine lokale Installation auf einen 1und1 live-server umgezogen.

    Inhalte usw. sind vollständig vorhanden.

    Allerdings lässt sich die Datenbank nicht mehr über den Contao-Manager updaten. Es sind sehr viele Einträge vorhanden, die über das Install-Tool aktualisiert werden müssen. Nach klick auf "Aktualisieren" erhalte ich im Frontend die Fehlerseite "Es ist ein Fehler aufgetreten"..

    Im Backend ist es ebenfalls nicht möglich, bestimmte Templates (bspw. den Rocksolid Slider) zu aktualisieren.

    Beispiel: Ich wähle den zuvor erstellten Slider im Artikel aus der Dropdown aus und klicke auf "Speichern & Schließen" --> Die Auswahl wird nicht genommen, sodass im Dropdown nichts mehr selektiert ist --> Slider nicht im Frontend sichtbar..

    Gibt es eine Möglichkeit, die Datenbank zu reparieren?

    Ich habe auch schon eine config.yml angelegt, mit folgendem Inhalt (ohne Wirkung)

    Code:
    doctrine:
        dbal:
            connections:
                default:
                    default_table_options:
                        charset: utf8
                        collate: utf8_unicode_ci
    Auch habe ich alle möglichen Caches über den Contao-Manger, im Browser oder über das Backend geleert.


    Die folgenden Einträge können nicht aktualisiert werden:

    Code:
    	
    ALTER TABLE tl_log CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_member CHANGE username username VARCHAR(64) DEFAULT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_member CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_member_group CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_module CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_nc_gateway CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_nc_language CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_nc_message CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_nc_notification CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_nc_queue CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_news CHANGE alias alias VARCHAR(128) DEFAULT '' NOT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_news CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_news_archive CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_news_feed CHANGE alias alias VARCHAR(128) DEFAULT '' NOT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_news_feed CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_newsletter CHANGE alias alias VARCHAR(128) DEFAULT '' NOT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_newsletter CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_newsletter_blacklist CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_newsletter_channel CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_newsletter_recipients CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_page CHANGE alias alias VARCHAR(128) DEFAULT '' NOT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_page CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_rocksolid_mega_menu CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_rocksolid_mega_menu_column CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_rocksolid_slider CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_search CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_search_index CHANGE word word VARCHAR(64) DEFAULT '' NOT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_search_index CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_style CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_style_sheet CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_theme CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_undo CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_user CHANGE username username VARCHAR(64) DEFAULT NULL COLLATE `utf8_bin`
    	
    ALTER TABLE tl_user CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_user_group CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    	
    ALTER TABLE tl_version CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL
    Spalten anlegen
    	Alle auswählen
    	
    CREATE INDEX alias ON tl_article (alias)
    	
    CREATE INDEX pid_start_stop_published_sorting ON tl_article (
      pid, start, stop, published, sorting
    )
    	
    CREATE INDEX alias ON tl_calendar_events (alias)
    	
    CREATE INDEX pid_start_stop_published ON tl_calendar_events (pid, start, stop, published)
    	
    CREATE INDEX alias ON tl_calendar_feed (alias)
    	
    CREATE INDEX published ON tl_comments (published)
    	
    CREATE INDEX source_parent_published ON tl_comments (source, parent, published)
    	
    CREATE INDEX tokenremove ON tl_comments_notify (tokenremove)
    	
    CREATE INDEX source_parent_tokenconfirm ON tl_comments_notify (source, parent, tokenconfirm)
    	
    CREATE INDEX pid_ptable_invisible_sorting ON tl_content (pid, ptable, invisible, sorting)
    	
    CREATE UNIQUE INDEX name ON tl_cron (name)
    	
    CREATE INDEX pid_published_sorting ON tl_faq (pid, published, sorting)
    	
    CREATE INDEX pid ON tl_files (pid)
    	
    CREATE UNIQUE INDEX uuid ON tl_files (uuid)
    	
    CREATE INDEX extension ON tl_files (extension)
    	
    CREATE INDEX alias ON tl_form (alias)
    	
    CREATE INDEX pid ON tl_form_field (pid)
    	
    CREATE INDEX pid ON tl_image_size (pid)
    	
    CREATE INDEX pid ON tl_image_size_item (pid)
    	
    ALTER TABLE tl_log ADD PRIMARY KEY (id)
    	
    CREATE UNIQUE INDEX username ON tl_member (username)
    	
    CREATE INDEX email ON tl_member (email)
    	
    CREATE INDEX activation ON tl_member (activation)
    	
    CREATE INDEX queue_croninterval ON tl_nc_gateway (queue_croninterval)
    	
    CREATE INDEX pid ON tl_nc_language (pid)
    	
    CREATE INDEX language ON tl_nc_language (language)
    	
    CREATE INDEX pid ON tl_nc_message (pid)
    	
    CREATE INDEX message ON tl_nc_queue (message)
    	
    CREATE INDEX sourcequeue ON tl_nc_queue (sourcequeue)
    	
    CREATE INDEX targetgateway ON tl_nc_queue (targetgateway)
    	
    CREATE INDEX alias ON tl_news (alias)
    	
    CREATE INDEX pid_start_stop_published ON tl_news (pid, start, stop, published)
    	
    CREATE INDEX alias ON tl_news_feed (alias)
    	
    CREATE INDEX pid ON tl_newsletter (pid)
    	
    CREATE UNIQUE INDEX pid_hash ON tl_newsletter_blacklist (pid, hash)
    	
    CREATE UNIQUE INDEX pid_email ON tl_newsletter_recipients (pid, email)
    	
    CREATE INDEX email ON tl_newsletter_recipients (email)
    	
    CREATE INDEX alias ON tl_page (alias)
    	
    CREATE INDEX pid_type_start_stop_published ON tl_page (pid, type, start, stop, published)
    	
    CREATE INDEX pid ON tl_rocksolid_mega_menu_column (pid)
    	
    CREATE INDEX pid ON tl_rocksolid_slide (pid)
    	
    CREATE UNIQUE INDEX url ON tl_search (url)
    	
    CREATE UNIQUE INDEX checksum_pid ON tl_search (checksum, pid)
    	
    ALTER TABLE tl_search_index ADD PRIMARY KEY (id)
    	
    CREATE INDEX pid ON tl_search_index (pid)
    	
    CREATE INDEX word ON tl_search_index (word)
    	
    CREATE INDEX pid ON tl_style (pid)
    	
    ALTER TABLE tl_style_sheet ADD PRIMARY KEY (id)
    	
    CREATE UNIQUE INDEX name ON tl_style_sheet (name)
    	
    ALTER TABLE tl_theme ADD PRIMARY KEY (id)
    	
    ALTER TABLE tl_undo ADD PRIMARY KEY (id)
    	
    ALTER TABLE tl_user ADD PRIMARY KEY (id)
    	
    CREATE UNIQUE INDEX username ON tl_user (username)
    	
    CREATE INDEX email ON tl_user (email)
    	
    ALTER TABLE tl_user_group ADD PRIMARY KEY (id)
    	
    ALTER TABLE tl_version ADD PRIMARY KEY (id)
    	
    CREATE INDEX pid ON tl_version (pid)
    	
    CREATE INDEX fromtable ON tl_version (fromtable)
    Tabellen löschen
    	Alle auswählen
    	
    DROP TABLE tl_newsletter_recipients_backup
    Geändert von Codehan (08.12.2019 um 20:10 Uhr)

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Codehan Beitrag anzeigen
    Allerdings lässt sich die Datenbank nicht mehr über den Contao-Manager updaten.
    Für Datenbank-Updates ist (aktuell noch) das Contao Installtool zuständig und nicht der Contao Manager. Das Contao Installtool rufst Du über https://example.com/contao/install auf.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Für Datenbank-Updates ist (aktuell noch) das Contao Installtool zuständig und nicht der Contao Manager. Das Contao Installtool rufst Du über https://example.com/contao/install auf.
    Das Install-Tool erreiche ich doch über den Manager. Dieses nutze ich bereits für das Updaten von Datenbanken. Hmm..

  4. #4
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Frage

    In den Logs ist folgendes zu finden:

    Code:
    [2019-12-08 20:21:07] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_route":"contao_install","_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction"},"request_uri":"https://relaunch.test-seite.com/contao/install","method":"POST"} []
    [2019-12-08 20:21:08] app.CRITICAL: An exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_log 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 /homepages/23/d35639183/htdocs/test-seite/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 /homepages/23/d35639183/htdocs/test-seite-website/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 /homepages/23/d35639183/htdocs/test-seite-website/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:75)"} []

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

    Standard

    Die Datenbank wurde nicht korrekt umgezogen. Dein Datenbank Export hatte keine auto increment Definition für tl_log bspw.

  6. #6
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Die Datenbank wurde nicht korrekt umgezogen. Dein Datenbank Export hatte keine auto increment Definition für tl_log bspw.
    Ich habe die Datenkbank über PHP-MyAdmin (MAMP) exportiert und direkt in 1und1 importiert.

    Kann ich diesen Vorgang wiederholen? Wenn ja, was muss ich beim Export/Import beachten?

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

    Standard

    Überprüfe den MySQL Export und verifiziere, dass die CREATE Statements alle korrekt sind. Verifiziere auch, dass nach dem Import die Tabellen die korrekten Definitionen haben.

  8. #8
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Überprüfe den MySQL Export und verifiziere, dass die CREATE Statements alle korrekt sind. Verifiziere auch, dass nach dem Import die Tabellen die korrekten Definitionen haben.
    Beispielsweise sieht der Create-Befehl für die von dir genannte Tabelle so aus:

    Code:
    CREATE TABLE `tl_log` (
      `id` int(10) UNSIGNED NOT NULL,
      `tstamp` int(10) UNSIGNED NOT NULL DEFAULT '0',
      `source` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `username` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `text` text COLLATE utf8mb4_unicode_ci,
      `func` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
      `browser` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

  9. #9
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Die Export-Einstellungen sehen so aus:

    Bildschirmfoto 2019-12-08 um 20.43.09.png

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

    Standard

    Bei der id fehlt das AUTO_INCREMENT.

    Die Zeile muss so aussehen:

    Code:
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  11. #11
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Bei der id fehlt das AUTO_INCREMENT.

    Die Zeile muss so aussehen:

    Code:
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    Komisch, das Häkchen für AUTO_INCREMENT ist in PHPMyAdmin gesetzt.

    Muss ich das jetzt echt manuell machen...?

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

    Standard

    Wenn du das System Log nicht brauchst - und der Fehler nur dort auftritt - kannst du tl_log auch einfach nicht exportieren lassen. In der neuen Contao Installation wird die Tabelle dann wieder angelegt.

  13. #13
    Contao-Nutzer
    Registriert seit
    27.07.2017.
    Beiträge
    168

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wenn du das System Log nicht brauchst - und der Fehler nur dort auftritt - kannst du tl_log auch einfach nicht exportieren lassen. In der neuen Contao Installation wird die Tabelle dann wieder angelegt.
    Habe es so ähnlich gemacht und nur die Tabellen genommen, die ich benötige.

    Danke euch

  14. #14
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Hallo,

    bei einer älteren Contao Installation hat der Betreiber die DB selbst exportiert und zu einem neuen Provider übertragen. Jetzt erscheinen auf der neuen Umgebung über das Install-Tool reihenweise Fehler, da es anscheinend ein Problem mit dem Export gab. Die entsprechenden Spalten (bspw. ID) sind vorhanden, werden von Contao aber anscheinend nicht korrekt erkannt.

    Bsp.

    ALTER TABLE `tl_log` ADD PRIMARY KEY (`id`);
    ....
    ALTER TABLE `tl_log` CHANGE `id` `id` int(10) unsigned NOT NULL auto_increment;


    Die alte DB steht wohl nicht mehr zum Export zu Verfügung. Lässt sich das Problem irgendiwe in der SQL lösen?

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
  •