Update von Woltlab Suite 3.0.26 auf 3.1.20 (und mehr)

  • Gibt es irgend eine einfache Möglichkeit, alle Tables auf Dynamic zu setzen? Es kann doch nicht sein, dass ich das tatsächlich händisch für jede einzelne der über 100 Tables machen muss :rolleyes:

    Vielleicht sowas in die Richtung:

    ACHUNG, DAS IST NICHT GETESTET!

    Hier entnommen: https://lxadm.com/MySQL:_changin…C_or_COMPRESSED

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • Das Beispiel habe ich ebenfalls gefunden. Da ich aber keinen direkten Zugang zum Server habe, kann ich auch kein Shell-Script starten. Etwas ähnliches in PHP wäre was anderes.. ich suche nun schon seit gut einer Stunde, finde aber kein Beispiel.

  • Das Beispiel habe ich ebenfalls gefunden. Da ich aber keinen direkten Zugang zum Server habe, kann ich auch kein Shell-Script starten. Etwas ähnliches in PHP wäre was anderes.. ich suche nun schon seit gut einer Stunde, finde aber kein Beispiel.

    kann man ja in PHP übersetzen bzw. transferieren.

    Dann musst du nur noch einen Database connect hinzufügen :)

    Aber bis ich das rausgesucht habe, ist da der Tag auch rum :D

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • Eine Lösung, für die phpMyAdmin ausreicht:

    Im ersten Schritt lässt man sich im SQL-Fenster die nötigen SQL-Befehle erzeugen:

    Statt "DatenbankName" wird natürlich der Name der Datenbank eingefügt!

    SQL
    SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," ROW_FORMAT=DYNAMIC;") FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="DatenbankName" AND TABLE_TYPE="BASE TABLE";

    Man bekommt als Ergebnis eine Liste von Alter Table-Befehlen, die zum Teil am Ende beschnitten sind. Unter +Optionen kann ich "Vollständige Texte" auswählen, lasse die Optionen geöffnet und klicke nochmals auf OK. Jetzt habe ich unbeschnittenen Text. ich lasse "Alle anzeigen" und klicke unten auf "in die Zwischenablage kopieren":

    SQL
    ALTER TABLE DatenbankName.blog1_blog ROW_FORMAT=DYNAMIC;
    ALTER TABLE DatenbankName.blog1_blog_author ROW_FORMAT=DYNAMIC;
    ALTER TABLE DatenbankName.blog1_cover_photo ROW_FORMAT=DYNAMIC;
    ALTER TABLE DatenbankName.blog1_entry ROW_FORMAT=DYNAMIC;
    .
    .
    .
    etc.

    Im SQL-Fenster füge ich ein, lösche den Text über dem ersten Alter Table-Befehl und kontrolliere, ob phpMyAdmin keine Zwischenüberschriften eingefügt hat.

    Mit OK lasse ich die Befehle ausführen, und obwohl ich außer "0 Datensätze" keine Rückmeldung bekomme, stehen jetzt alle Tabellen auf "DYNAMIC".

    lg,

    Chris

    Edited 2 times, last by -chris- (July 16, 2021 at 8:45 PM).

  • Und vergiss nicht, in Erfahrung zu bringen, wie es zu dieser Änderung in der DB kam. Sollte Dein Anbieter da die Finger im Spiel haben, ist wohl ein klärendes Gespräch fällig, damit sich das nicht wiederholt.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier und hier.

  • Ich hätte sonst auch gerade das Skript fertiggestellt: https://gist.github.com/ApertureDevelo…404d42578edbe90

    Ich habe es mehrfach getestet und es funktioniert einwandfrei. Es ist nur wichtig das ein Nutzer benutzt wird der 'information_schema' lesen kann, um unnötiges altern von Tabellen die bereits ein anderes Format haben zu verhindern.

    Mit --help kann man sich eine Hilfestellung ausgeben lassen, welche die Parameter erklärt, aber ganz simpel ist es einfach:
    "update_row_format.php -d <database> -u <username>"

    Aus Sicherheitsgründen kann das Passwort nicht mit einem Parameter übergeben werden sondern muss eingegeben werden.

  • Und vergiss nicht, in Erfahrung zu bringen, wie es zu dieser Änderung in der DB kam. Sollte Dein Anbieter da die Finger im Spiel haben, ist wohl ein klärendes Gespräch fällig, damit sich das nicht wiederholt.

    Bei MariaDB 10.1 war compact noch das Standard row Format, und wenn man es nicht manuell umstellt, bleibt es auch bei compact. Also je nachdem wie lange die Webseite existiert oder wie gut der Hoster auf MariaDB Updates achtet kann es einfach ein Überbleibsel aus der Vergangenheit sein

  • Ich hätte sonst auch gerade das Skript fertiggestellt: https://gist.github.com/ApertureDevelo…404d42578edbe90

    Ich habe es mehrfach getestet und es funktioniert einwandfrei. Es ist nur wichtig das ein Nutzer benutzt wird der 'information_schema' lesen kann, um unnötiges altern von Tabellen die bereits ein anderes Format haben zu verhindern.

    Mit --help kann man sich eine Hilfestellung ausgeben lassen, welche die Parameter erklärt, aber ganz simpel ist es einfach:
    "update_row_format.php -d <database> -u <username>"

    Aus Sicherheitsgründen kann das Passwort nicht mit einem Parameter übergeben werden sondern muss eingegeben werden.

    Stark! Vielen Dank!

  • Bei dem Skript hast du wirklich an alles gedacht! :thumbup:

    lg,

    Chris

    Dankeschön ^^ Ich versuche immer mein bestes zu geben, deshalb auch mein Leitspruch "Qualität ist unser Standard"


    Stark! Vielen Dank!

    Immer gerne, ich hatte ja das selbe Problem, wodurch es sinn machte meine Lösung universell zu gestallten. Vielleicht hat ja sonst auch noch jemand das Problem und kann das Skript dann verwenden ^^

  • Ich möchte Euch gerne nochmals mit einer anderen Frage belästigen. Um mögliche Issues beim nächsten Versuch am scharfen Forum zu vermeiden, habe ich jetzt eine Testinstanz erstellt. Neue Datenbank, neuer Webserver mit neuer Verzeichnisstruktur. Das config file 'config.inc.php' habe ich bereits auf die neue DB angepasst.

    Irgendwo ist aber noch die URL zum Forum abgespeichert. Im Root-Verzeichnis konnte ich keinen entsprechenden Eintrag finden. Entweder ist dieser irgendwo in einem Verzweichnis oder aber direkt in der DB gespeichert. Weiss das zufällig jemand? Wo finde ich den Eintrag und ist der Pfad zum Forum nur einmal configuriert?

    Danke nochmals für Eure wirklich starke Hilfe!

    Grüsse aus der Schweiz

    Heinz

  • In der Datenbank musst Du beides noch ändern, jap.

    Quote

    Schritt 2: Datenbank anpassen

    In der Datenbanktabelle wcf1_application muss der Wert der Spalte domainPath für den Datensatz mit packageID=1 von / auf /core/ und für den Datensatz mit packageID=4 von /forum/ auf / geändert werden.

    Des Weiteren muss in der Datenbanktabelle wcf1_package der Wert der Spalte packageDir für den Datensatz mit packageID=4 von forum/ auf ../ geändert werden.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!