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