Kommentar in SQL Datei löscht erste Tabelle d.h Befehl "CREATE TABLE--- "

  • Die SQL Datei "install.mysql.utf8.sql" beginnt mit



    Bei der Installation in ein frisch aufgesetztes Joomla 3.x wird die erste Tabelle `#__rsgallery2_galleries` nicht erzeugt.


    1) Welche Form von Kommentaren ist erlaubt
    2) Die obige Form sollte funktionieren oder ?


    Danke für Hilfe

  • Welche genaue Joomla Version setzt du ein? 3.5.1?


    Edit:
    Versuche einmal eine zeile nach den kommentaren frei zu lassen.


    Im Core nutzen wir --- ggf. funktioniert das besser? https://github.com/joomla/joom…tion/sql/mysql/joomla.sql

  • Ein mySQL-Kommentar sollte mit Sicherheit keine Probleme ergeben.


    Ich fragte mich, wie der User installiert - über phpMyAdmin? Warum sollte man für eine Joomla-Installation solche Fragen stellen? Aber es ist Freitag und Mittwoch ist lange her.

  • Hallo,
    danke für die Antworten.

    Zitat

    Joomla Version setzt du ein ?

    -> 3.5.1


    Ich bin ein Entwickler der Komponente.
    Bei der Installation über Zip/vom Server wird die erste Tabelle ignoriert


    Seit ich den Kommentar

    Code
    ## install sql for RSGallery2#


    weglasse erscheinen alle Tabellen nach der Installation


    Wenn ich folgendes benutze bekomme ich die erste Tabelle auch wenn der Kommentar vorhanden ist

    Code
    $buffer = file_get_contents($this->sqlPathFileName);
    // Create an array of queries from the sql file
    $this->sqlQueries = JDatabaseDriver::splitSql($buffer);


    Die zentrale Frage war : Ist ein eine Zeile mit "#" eine gültige Kommentarzeile in der SQL Datei
    Unter 2.5 ging es noch.


    Zitat

    Im Core nutzen wir ---


    Danke, das ist für mich ein hinreichende Antwort.

  • Ich bin nicht der Experte, weiss aber dass gemäss Doku sind mehrere Varianten für Kommentare erlaubt. Allerdings habe ich die mit dem Hash (#) noch nicht angetroffen in Tabellen z.B. für die Joomla Installation.
    Das wird normalerweise verwendet:

    Code
    --
    -- Make #__user_keys.user_id fit to #__users.username
    --
    
    
    ALTER TABLE `#__user_keys` MODIFY `user_id` varchar(150) NOT NULL;
  • @CurlY BracketS Das ist auch die übliche Art zu kommentieren, es sieht ja irgendwie "gefährlich" aus , wenn man bedenkt dass der Präfix-Platzhalter "#_" ist. Tatsächlich funktioniert es aber (zumindest in der aktuellen Version).
    Bei der Fragestellung oben ist aber so viel durcheinander. Auf einer frisch installierten 3.5. kann es diese Tabellen so und so nicht geben. Mein Verdacht ist, dass der TE die Tabelle so wie sie ist per phpMyadmin/sql installieren wollte (keine Ahnung warum ... ) - und nun hat er sie mit dem Präfix #__ ;)

  • Meist liegt bei Fehlinterpretation von line endings und Kommentaren eine falsche Codierung der Datei/Zeilenumbrüche vor.


    Bspw. bei einer Codierung Unicode statt UTf-8 interpretiert das MySQL als Fehler, oder verknüpft Kommentare besser Zeilen bis zu nächstem Semi-Kolon und ähnlicher Krimskrams, je nach Kodierung. Manchmal explodiert MySQL/phpMyAdmin dann auch ;)


    Also Editoreinstellungen prüfen oder Editor wechseln, am besten UTF-8 und line endings am besten Linux (LF). Ein Lineending "pures MAC", also nur CR, führt z.B. wie in deinem Fall zu Fehlinterpretation, wann der Kommentar beendet ist => "MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze)". Keine Explosion, aber tut halt nix.


    Nur nebenbei: Joomla "bevorzugt" mittlerweile InnoDB und utf8mb4


  • Bei der Fragestellung oben ist aber so viel durcheinander. Auf einer frisch installierten 3.5. kann es diese Tabellen so und so nicht geben. Mein Verdacht ist, dass der TE die Tabelle so wie sie ist per phpMyadmin/sql installieren wollte (keine Ahnung warum ... ) - und nun hat er sie mit dem Präfix #__ ;)


    Zur Info: Es ist die Standardinstallation der Komponente und ein Auszug der Datei die seit J!2.5 nicht verändert wurde. Die folgenden Tabellen der Datei sind nach der Installation alle vorhanden


    @Re:Later CR+LF Varianten muss ich noch prüfen

  • Ich weiß, dass es dann klappt in phpMyAdmin via Datei Importieren.


    Ist übrigens egal wegen dem Tabellenprefix #__. Solche Tabellen kann man trotzdem anlegen. Halt falsch benannt.


    Nimm halt einen Editor, wo man alles sowas einstellen kann (ich verwende Notepad2), lass im File nur die erste Tabelle stehen mit der Leerzeile danach. Probier in phpMyAdmin rum, wann der Import klappt und Tabelle #__dingsbums angelegt wird. Kannst das wenigstens schon verlässlich ausschließen.