0

新しいコンポーネントをインストールまたは更新するときに、SQL ファイルが実行されません。最初、同僚が自分の SQL ファイルを PHPMyAdmin で直接実行する必要があるのは奇妙だと思いましたが、Joomla ではありません! ファイルを自動的に実行するはずですか?

XML を設定する方法は次のとおりです。

ReforcoDigital.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="2.5.0" client="site" method="upgrade">
<name>Reforco Digital</name>
<author>Rodrigo Pereira</author>
<creationDate>14/05/2013</creationDate>
<copyright>Copyright</copyright>
<license>Licença</license>
<authorEmail>rodrigo-c-pereira@hotmail.com</authorEmail>
<authorUrl>http://www.site.com</authorUrl>
<version>0.1</version>
<description>Sistema de Reforço Digital</description>

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
    </sql>
</install>

<update>
    <schemas>
        <schemapath type="mysql">sql/updates/mysql</schemapath>
    </schemas>
</update>

<files folder="site">
    <folder>language</folder>
    <folder>models</folder>
    <folder>views</folder>
    <filename>reforcodigital.php</filename>
    <filename>controller.php</filename>
    <filename>index.html</filename>
</files>

<administration>
    <menu>Reforco Digital</menu>
    <files folder="admin">
        <folder>sql</folder>
        <folder>views</folder>
        <filename>controller.php</filename>
        <filename>reforcodigital.php</filename>
        <filename>index.html</filename>
    </files>
</administration>
</extension>

フォルダーadmin/sqlにはinstall.mysql.utf8.sqlファイルがあり、admin/sql/updates/mysqlにはファイル0.1.sqlがあります。どちらもまったく同じ SQL コードを持っています。ここで何が欠けている可能性がありますか?

4

2 に答える 2

0

私はあなたと同じ問題を抱えていると以前にコメントしましたが、そうではありません。私の問題はまったく別の問題であり、ファイルで何が起こっているかを説明した後に説明します。

そのため、sql フォルダーは管理コンポーネント フォルダー内にありますが (これは正常です)、インストール/アンインストールの sql XML エントリにはこれが記述されていません。したがって、この変更を行うと、期待どおりに機能することがわかると思います。

<install>
    <sql folder="admin">
        <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
    </sql>
</install>

私の問題は、スキーマが #__schema テーブルに存在する場合にのみ更新セクションがスキーマの更新を実行し、更新時に install.sql が実行されないことです。したがって、拡張機能をアップグレードしてそれにテーブルを追加する場合、更新前に拡張機能にテーブルが既に存在していない限り、XML インストーラーに新しいテーブルを作成することはできません。

install.php ファイルを使用して、必要に応じてテーブルを検索して作成します。

于 2013-05-15T18:18:44.873 に答える