it-swarm.com.de

Die Deinstallationsdatei für die Installation des Joomla-Moduls wird während der Installation nicht geladen

Ich habe ein Modul, das einige DB-Funktionen während der Installation hat, für die ich die Referenz gemacht habe
install.mysql.utf8.sql
uninstall.mysql.utf8.sql

in der mod_score.xml (mod_score ist der Name des Moduls)
mode_score.xml Es zeigt
"Installation des Moduls war erfolgreich" aber Überprüfung der Datenbank, dass keine Tabellen installiert sind. Bitte lassen Sie mich wissen, wie zu lösen, ich habe gesucht hier aber nicht funktioniert

<files>
    <filename>mod_score.xml</filename>
    <filename module="mod_score">mod_score.php</filename>
    <filename>helper.php</filename>
    <filename>index.html</filename>
        <folder>tmpl</folder>
        <folder>sql</folder>
        <folder>sql/mysql</folder>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
        <filename>tmpl/form_success.php</filename> 
        <filename>sql/mysql/install.mysql.utf8.sql</filename>
        <filename>sql/mysql/uninstall.mysql.utf8.sql</filename>
</files>
<install>
        <sql>
         <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file>
        </sql>
</install>
<uninstall> <!-- Runs on uninstall -->
    <sql>
        <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file>
    </sql>
</uninstall>

install.mysql.utf8.sql

  DELIMITER $$

-- Match Records 
CREATE TABLE IF NOT EXISTS  `#__match_record` (
 `match_id` int(10) NOT NULL AUTO_INCREMENT,
     ---
     ---
 `match_comments` text NOT NULL,
 PRIMARY KEY (`match_id`)
) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8
-- Batting Records

CREATE TABLE IF NOT EXISTS  `#__batting_record` (
 `id` int(15) NOT NULL AUTO_INCREMENT,
 `pname` varchar(40) DEFAULT 'DNP',
 ---
 ---
 `timeinserted` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=244 DEFAULT CHARSET=utf8

-- Bowling Records
CREATE TABLE IF NOT EXISTS  `#__bowling_record` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `no` int(10) NOT NULL,
 ---
 ---


 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8


END $$
DELIMITER ;

Version - Joomla 3. +

1
Srinath Naidu

Sie müssen keine Unterordner und Dateien in Ordnern angeben, die Sie bereits angegeben haben. Benutz einfach <folder>tmpl</folder> und <folder>sql</folder>.

Kein Bedarf für <folder>sql/mysql</folder> usw. Der gesamte Ordner wird bereits installiert.

Ihre <files> Tag wäre.

<files>
    <filename>mod_score.xml</filename>
    <filename module="mod_score">mod_score.php</filename>
    <filename>helper.php</filename>
    <filename>index.html</filename>
    <folder>tmpl</folder>
    <folder>sql</folder>
</files>

Nun, dein Problem. Löschen DELIMITER $$ und END $$ DELIMITER ;.

Siehe diese Antwort zur Verdeutlichung. Es muss geben ; am Ende jeder MySQL-Abfrage, wenn Sie mehrere Abfragen in einer Datei haben.

Ihr sql sollte folgendermaßen aussehen:

-- Match Records 
CREATE TABLE IF NOT EXISTS  `tst_match_record` (
 `match_id` int(10) NOT NULL AUTO_INCREMENT,
 `match_comments` text NOT NULL,
 PRIMARY KEY (`match_id`)
) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8;
-- Batting Records

CREATE TABLE IF NOT EXISTS  `tst_batting_record` (
 `id` int(15) NOT NULL AUTO_INCREMENT,
 `pname` varchar(40) DEFAULT 'DNP',
 `timeinserted` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=244 DEFAULT CHARSET=utf8;

-- Bowling Records
CREATE TABLE IF NOT EXISTS  `tst_bowling_record` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `no` int(10) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8;
1
Rene Korss