it-swarm-vi.com

Cấu trúc thư mục của tập tin sql trong thành phần của tôi

Thư mục nào tôi nên đặt các tệp sql của mình trong thành phần của mình để j Joomla thực hiện chúng tự động? Nếu trong phiên bản đầu tiên tôi tạo một bảng và trong phiên bản sau tôi muốn thay đổi, tôi nên tổ chức các tệp đó như thế nào để j Joomla biết tệp nào phải thực thi? J Joomla quản lý các tệp này như thế nào?

6
csbenjamin

Như Milton đã viết, bạn chỉ định vị trí các tệp SQL đó trong tệp kê khai cài đặt. Có ba vị trí khác nhau để cài đặt, gỡ cài đặt và cập nhật.

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

Như bạn thấy, update one hơi đặc biệt vì nó không chỉ định một tệp duy nhất mà là một thư mục. Trong thư mục này nên có các tệp theo phiên bản thành phần của bạn. Trên một bản cập nhật Joomla sẽ kiểm tra thư mục đó và áp dụng các lệnh trong các tệp theo đúng thứ tự. Nó lưu trữ tệp được áp dụng mới nhất trong cơ sở dữ liệu để nó biết trong bản cập nhật tiếp theo, cái nào là cái cuối cùng được áp dụng. Vì vậy, thư mục nên chứa các tệp có tên như thế này:

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

Quy ước thường là thư mục quản trị, nhưng ngoài ra nó không quan trọng miễn là bạn tham chiếu chính xác vị trí của các tệp bên trong tệp xml chính của mình.

như:

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

hoặc là:

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