Skip to main content

entari-plugin-database

Entari plugin for SQLAlchemy ORM

功能

  • 提供数据库服务支持,管理多个数据库连接
  • 依赖注入会话与 ORM 模型数据
  • 依据类型注解或 SQLDepends 的复杂依赖关系注入
    • 例如 Sequence[Model] 会注入所有模型
    • 声明 SQLDepends(select(Model).where(Model.field == value)) 会注入查询结果
    • 通过配合 arclet.entari.param, 可以在 SQLDepends 的查询语句中使用 param 声明其他的依赖注入参数
  • 自动数据库迁移
    • 通过 alembic 实现
    • 检测到模型变更时,自动生成并应用迁移脚本
    • 根据模型的 __bind_key__ 属性,支持多数据库迁移
    • 允许开发者自定义迁移脚本

多数据库

  • 插件配置项 binds 可以根据 bind_key 声明多个数据库连接
  • ORM 模型可以通过 __bind_key__ 属性指定使用哪个数据库连接
  • 默认数据库连接使用 "" 作为 bind_key

迁移

  • ORM 模型的变更会被自动检测并生成迁移脚本
  • 本插件会根据模型的结构自动计算 revision
  • ORM 模型可以声明 __revision__ 属性来指定特定的 revision
  • 迁移记录将存储在用户目录下的 .entari/data/database/migrations_lock.json 文件中

配置

  • type:数据库类型,默认为 sqlite。
  • name:数据库名称或文件路径,默认为 data.db。
  • driver:数据库驱动,默认为 aiosqlite;其他类型的数据库驱动参考 SQLAlchemy 文档。
  • host:数据库主机地址。如果是 SQLite 数据库,此项可不填。
  • port:数据库端口号。如果是 SQLite 数据库,此项可不填。
  • username:数据库用户名。如果是 SQLite 数据库,此项可不填。
  • password:数据库密码。如果是 SQLite 数据库,此项可不填。
  • query:数据库连接参数,默认为空字典。可以传入如 {"timeout": "30"} 的参数。
  • session_options:数据库会话选项,默认为 None。可以传入如 {"expire_on_commit": False} 的字典。
  • binds:数据库绑定配置,默认为 None。可以传入如 {"bind1": UrlInfo(...), "bind2": UrlInfo(...)} 的字典。
    plugins:
      database:
        type: sqlite
        binds:
          foo:
            type: mysql
            driver: asyncmy
            host: localhost
            port: 3306
            name: foo_db
            username: root
            password: password
    
  • options:数据库连接选项,默认为 {"echo": None, "pool_pre_ping": True}。
  • create_table_at:在指定阶段创建数据库表,默认为 'preparing'。可选值为 'preparing', 'prepared', 'blocking'。

Metadata

Release files for entari-plugin-database 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for entari-plugin-database 0.4.0
File Size Uploaded Provenance
entari_plugin_database-0.4.0.tar.gz 19.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for entari-plugin-database 0.4.0
File Interpreter ABI Platform
entari_plugin_database-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.3 kB

Release files / entari_plugin_database-0.4.0.tar.gz

Download URL entari_plugin_database-0.4.0.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ca9e6e57dddad23b59bc541e2d654b9a8a68a7bb965b87f0198a3687c752235b
BLAKE2b-256 checksum
How to use checksums
d94c38625fc2212a10a47e9a07a1b223b24c307af28f6f1169baad8387f968af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.28.0 CPython/3.11.7 Windows/10

Release files / entari_plugin_database-0.4.0-py3-none-any.whl

Download URL entari_plugin_database-0.4.0-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78b73d55e6ebf635477c373582bca2b929e2e82f40f7244d5daf4fa2c70e150c
BLAKE2b-256 checksum
How to use checksums
f196f342de7056b26fa184238f87e89ea278a7ff25f8ffed0d5b9bd136874fa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.28.0 CPython/3.11.7 Windows/10

Security for entari-plugin-database 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page