web-dev-qa-db-pt.com

O arquivo de desinstalação de instalação do módulo Joomla não carrega durante a instalação

Eu tenho um módulo que possui algumas funções de banco de dados durante a instalação para as quais fiz a referência
install.mysql.utf8.sql
uninstall.mysql.utf8.sql

no mod_score.xml (mod_score é o nome do módulo)
mode_score.xml Mostra
"o módulo de instalação foi bem-sucedido" mas, ao verificar o banco de dados, não há tabelas instaladas. por favor, deixe-me saber como resolver eu procurei aqui mas não funcionou

<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 ;

Versão - Joomla 3. +

1
Srinath Naidu

Você não precisa especificar subpastas e arquivos nas pastas que você já especificou. Apenas use <folder>tmpl</folder> e <folder>sql</folder>.

Não há necessidade de <folder>sql/mysql</folder> etc. A pasta inteira já está sendo instalada.

Seu <files> tag seria.

<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>

Agora, o seu problema. Remover DELIMITER $$ e END $$ DELIMITER ;.

Veja esta resposta para esclarecimentos. Tem que haver ; no final de cada consulta mysql, se você tiver várias consultas em um arquivo.

Seu sql deve ficar assim:

-- 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