web-dev-qa-db-ja.com

コンポーネント内のSQLファイルの構造フォルダー

Joomlaがコンポーネントを自動的に実行するには、SQLファイルをコンポーネントに配置する必要があるフォルダーを教えてください。最初のバージョンでテーブルを作成し、それ以降のバージョンで変更したい場合、joomlaが実行する必要のあるファイルを知っているように、それらのファイルをどのように整理する必要がありますか?joomlaはこれらのファイルをどのように管理しますか?

6
csbenjamin

ミルトンがすでに書いたように、それらのSQLファイルがインストールマニフェストファイルのどこにあるかを指定します。インストール、アンインストール、更新には3つの異なる場所があります。

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
    </sql>
</install>
<uninstall>
    <sql>
        <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
    </sql>
</uninstall>
<update>
    <schemas>
        <schemapath type="mysql">sql/updates/mysql</schemapath>
    </schemas>
</update>

ご覧のとおり、update oneは単一のファイルではなくフォルダを指定しているため、少し特殊です。このフォルダには、コンポーネントのバージョンに従うファイルが含まれているはずです。更新時に、Joomlaはそのフォルダーをチェックし、ファイル内のコマンドを正しい順序で適用します。最後に適用されたファイルがデータベースに保存されるため、最後に適用されたファイルが次の更新時にわかります。したがって、フォルダーには次のような名前のファイルが含まれている必要があります。

  • 1.0.0.sql
  • 1.0.1.sql
  • 1.1.0.sql
  • ...
9
Bakual

通常の規則はadminディレクトリですが、メインのxmlファイル内でファイルの場所を正しく参照している限り、それ以上は問題になりません。

お気に入り:

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

または:

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