Datenbank-Überbleibsel von 3.0 entfernen

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Cold
Mitglied
Beiträge: 1137
Registriert: 07.01.2005 20:57
Wohnort: Aachen
Kontaktdaten:

Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von Cold »

Hallo,

bei dem Versuch, einen Bot nachzutragen, erschien nach Abschicken folgende Fehlermeldung:
Allgemeiner Fehler
SQL ERROR [ mysql4 ]

Field 'user_arcade_permissions' doesn't have a default value [1364]

SQL

INSERT INTO sf_users (username, username_clean, user_password, user_email, user_email_hash, group_id, user_type, user_permissions, user_timezone, user_dateformat, user_lang, user_style, user_actkey, user_ip, user_regdate, user_passchg, user_options, user_new, user_inactive_reason, user_inactive_time, user_lastmark, user_lastvisit, user_lastpost_time, user_lastpage, user_posts, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height, user_new_privmsg, user_unread_privmsg, user_last_privmsg, user_message_rules, user_full_folder, user_emailtime, user_notify, user_notify_pm, user_notify_type, user_allow_pm, user_allow_viewonline, user_allow_viewemail, user_allow_massemail, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_form_salt) VALUES ('AhrefsBot', 'ahrefsbot', '', '', '00', 787, 2, '', 'Europe/Brussels', 'j. F Y, H:i', 'de', 3, '', '', 1437126768, 1437126768, 230271, 0, 0, 0, 1437126768, 0, 0, '', 0, '9E8DA7', '', '', 0, 0, 0, 0, 0, 0, -3, 0, 0, 1, 0, 1, 1, 1, 0, '', '', '', 'eb7a44cb9839856b')

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 852
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysql.php
LINE: 181
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysql->sql_query()

FILE: [ROOT]/includes/functions_user.php
LINE: 275
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/includes/acp/acp_bots.php
LINE: 235
CALL: user_add()

FILE: [ROOT]/includes/functions_module.php
LINE: 674
CALL: acp_bots->main()

FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()
Tatsächlich sind in der DB unter "users" noch die Spalten user_arcade_permissions, user_arcade_perm_form, user_arcade_pm, games_per_page, games_sort_dir und games_sort_order enthalten. Da ich bei 3.1.X keine Arcade-Ext installiert habe, ist das wohl noch ein Überbleibsel aus den 3.0.X-Zeiten.

Wie kann ich diese Spalten entfernen? Oder, noch besser, wie kann ich die Datenbank komplett von Überbleibseln befreien, sodass in keinem Fall mehr Fehler deshalb auftauchen?


Danke schonmal und Gruß

Martin


P.S. Selbiger Fehler erscheint, wenn man eine Registrierung im Board abschickt.
Viele Grüße,
Martin
Luftraumexperten | Schueler Talk | Spar-Taner
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von gn#36 »

KB:no_default schon gesehen?

Allerdings gehört das in der Fehlermeldung genannte Feld eindeutig zu einem Mod. Vor dem Upgrade auf 3.1 kannst du soweit ich weiß das STK verwenden um dich von 3.0 Mod-Überbleibseln zu befreien.

Ansonsten einfach phpMyAdmin oder ein ähnliches Tool anwerfen und die überflüssigen Felder über die GUI rauswerfen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Cold
Mitglied
Beiträge: 1137
Registriert: 07.01.2005 20:57
Wohnort: Aachen
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von Cold »

Danke für den Link. Das Script kann ich nicht verwenden, ich bin schon auf 3.1.5. Habe die genannten Spalten nun manuell gelöscht, erhalte aber nur den nächsten Fehler:
SQL ERROR [ mysql4 ]

Incorrect decimal value: 'Europe/Brussels' for column 'user_timezone' at row 1 [1366]

SQL

INSERT INTO sf_users (username, username_clean, user_password, user_email, user_email_hash, group_id, user_type, user_permissions, user_timezone, user_dateformat, user_lang, user_style, user_actkey, user_ip, user_regdate, user_passchg, user_options, user_new, user_inactive_reason, user_inactive_time, user_lastmark, user_lastvisit, user_lastpost_time, user_lastpage, user_posts, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height, user_new_privmsg, user_unread_privmsg, user_last_privmsg, user_message_rules, user_full_folder, user_emailtime, user_notify, user_notify_pm, user_notify_type, user_allow_pm, user_allow_viewonline, user_allow_viewemail, user_allow_massemail, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_form_salt) VALUES ('AhrefsBot', 'ahrefsbot', '', '', '00', 787, 2, '', 'Europe/Brussels', 'j. F Y, H:i', 'de', 1, '', '', 1437135910, 1437135910, 230271, 0, 0, 0, 1437135910, 0, 0, '', 0, '9E8DA7', '', '', 0, 0, 0, 0, 0, 0, -3, 0, 0, 1, 0, 1, 1, 1, 0, '', '', '', '0eedd5773ca1d638')
Die gehört ja nun nicht zu einer Mod, also kann ich die nicht einfach löschen. Wie wäre das Vorgehen hier?
Viele Grüße,
Martin
Luftraumexperten | Schueler Talk | Spar-Taner
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von gn#36 »

Das hört sich irgendwie so an als wäre das Datenbank-Update auf 3.1.5 nicht sauber durchgelaufen. Probier zunächst mal aus, die install/database_update.php noch mal hochzuladen und dann auszuführen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Cold
Mitglied
Beiträge: 1137
Registriert: 07.01.2005 20:57
Wohnort: Aachen
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von Cold »

Habe ich gerade ausprobiert - leider erfolglos. In der Fehlermeldung steht auch MySQL4, ich bin aber auf MySQL 5.5.42.

Kann das zusammenhängen?
Viele Grüße,
Martin
Luftraumexperten | Schueler Talk | Spar-Taner
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von gn#36 »

Was sagt das Update denn? Fehlerfrei und keine Änderungen?

Bzgl. Mysql4 schau bitte mal nach, was für ein Backend in der config.php eingetragen ist. Dort steht vermutlich mysql. Mach da mal mysqli draus (siehe ggf. kb:config_31). Ich wüsste aber nicht, dass das Interface der DB an diesem Fehler Schuld wäre.

Schau bitte mal in phpMyAdmin was für einen Datentyp das Feld user_timezone in der Tabelle phpbb_users hat. Das sollte den Datentyp "varchar(100)" oder sowas ähnliches haben und als Standardwert "UTC". Die Fehlermeldung sieht so aus als wäre das nicht der Fall. Wenn das nicht so ist dann ist bei irgend einem der Updates was schief gegangen, aber dann kann natürlich auch noch mehr kaputt sein. Kannst du das Update von einer Backupkopie aus noch mal machen und schauen ob du Fehler beim Datenbankupdate bekommst? Hier reicht es aus, die alte Datenbank zu verwenden und die install/database_update.php auszuführen (natürlich mit den Dateien und Ordnern von phpBB 3.1.5).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Cold
Mitglied
Beiträge: 1137
Registriert: 07.01.2005 20:57
Wohnort: Aachen
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von Cold »

Guten Morgen,

user_timezone steht auf "decimal(5,2)" mit Standardwert "0.00". Kann ich das gefahrlos auf "varchar(100)" mit Standardwert "UTC" ändern? Wie sieht es mit den Usern aus? Muss der Wert bei denen dann auch noch angepasst werden oder geschieht das automatisch?

Dieses "decimal(5,2)" - war das mal standard in älteren phpBB-Versionen? Oder wo kommt das her?


Aber bevor wir uns jetzt hier auf die Suche nach potentiellen Fehlern aus alten Updates machen - ist es nicht einfacher, eine Neuinstallation durchzuführen und die Daten (Threads, Beiträge, User) dabei zu importieren? Dann müsste die Datenbankstruktur doch wieder korrekt und auch alle Überbleibsel aus 3.0 verschwunden sein. Analog zu meinem Thema aus 02/15: Migration von 3.1.3 zu 3.1.3.
Das wichtigste dabei wäre natürlich, dass die Linkstruktur erhalten bleibt.


Gruß
Martin
Viele Grüße,
Martin
Luftraumexperten | Schueler Talk | Spar-Taner
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von gn#36 »

Das Feld war in den 3.0.x Versionen so definiert. Da war das einfach ein Index aus einer Liste von Zeitzonen.

Die Migration von 3.0 ist einfach nur ein Datenbankupdate. Die Neuinstallation von 3.1 ist überflüssig, da du anschließend die komplette Datenbank wieder durch die 3.0er DB ersetzen würdest und dann ein Datenbankupdate machst. Es gibt keinen Migrator, der Daten aus Datenbank A nimmt und in Datenbank B schiebt und dabei die Daten konvertiert. Stattdessen wird die Datenbank komplett übernommen und alle Updates werden Schrittweise in der Datenbank übernommen. Die Datenbank macht sozusagen schrittweise ihre Updates von Version 3.0.x auf 3.1.0-a1 auf 3.1.0-a2, usw. bis 3.1.5. Hierfür liegen sämtliche Migrationsinformationen seit phpBB 3.0.0 unter phpbb/db/migration/data/. Die werden der Reihe nach installiert, wobei diejenigen übersprungen werden, die bereits installiert sind. Vorher waren die einfach alle in der install/database_update.php enthalten.

Ich gebe dir aber Recht dass es unsinnig ist, alle Fehler zu suchen - da ist eindeutig das Update von 3.0 nicht voll durchgelaufen.

Ich schlage vor du startest noch mal mit der 3.0.x Version, wenn du kannst und führst das Update noch mal durch. Allerdings würde ich zunächst die Datenbank auf mindestens phpBB 3.0.12 bringen, eventuell vermeidet das Probleme beim Update auf 3.1.5. Vielleicht gehst du direkt auf 3.0.14, aber zwischen 3.0.12 und 3.0.14 gab es keine DB Änderungen, von daher sollte das egal sein. Danach das STK nutzen um die Datenbank von Mods zu reinigen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Cold
Mitglied
Beiträge: 1137
Registriert: 07.01.2005 20:57
Wohnort: Aachen
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von Cold »

Hi gn#36,

was meinst du mit "und führst das Update nochmal durch" - nur die entsprechenden Datenbankupdates von 3.0.12-3.1.5 Schritt für Schritt?

Das Update an sich liegt schon länger zurück. Deshalb ist es tendentiell schwierig, das Forum wieder komplett auf den alten Stand zu bringen. Die Dateien habe ich zuletzt beim Update auf 3.1.5 komplett durch die neuen ersetzt. Diese sind also sauber.


Gruß
Martin


P.S. Ich sehe gerade, dass das STK eine Standalone-Lösung ist. Kann ich die dann nicht auch zur Bereinigung der 3.1.5-DB nutzen?
Viele Grüße,
Martin
Luftraumexperten | Schueler Talk | Spar-Taner
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Datenbank-Überbleibsel von 3.0 entfernen

Beitrag von gn#36 »

Unwahrscheinlich - das STK wurde noch nicht auf phpBB 3.1.x portiert und an der Datenbank hat sich ja doch was geändert - sonst hättest du die Probleme nicht.

Daten aus einer DB in die andere zu übernehmen ist aufwändig, aber immerhin kannst du damit wohl denke ich die größeren Fehler in deiner Datenbank finden.

Wenn du 3.1.5 neu installierst würde ich auch vermuten, dass die Datenbank anschließend stimmt. Dann nimmst du einfach alle deine derzeitigen Daten und exportierst sie aus deiner aktuellen DB (ohne die Tabellen) Dann nimmst du den Export und importierst ihn in der neuen Tabelle. Alle echten Problemstellen fliegen dir hoffentlich mit einem SQL Fehler um die Ohren, wo die Datentypen oder Tabellenspaltennamen nicht mehr passen, aber ersteres ist nicht garantiert (z.B. kann man einen Integer der Länge 3 auch in ein Feld der Länge 6 importieren, oder schlimmer: text in varchar, wenn die Texte bislang kurz genug waren).

Wenn du Pech hast bleiben dabei aber auch inhaltliche Probleme über (z.B. wenn Werte in der Konfiguration falsch sind oder so, oder neue Felder unbefüllt bleiben, aber wo der Default Wert eigentlich falsch ist).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Support-Forum“