Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

快速开始

添加依赖

默认启用 derive 和 sqlite。需要迁移 API 或 CLI 时添加 migrate:

[dependencies]
afastorm = { version = "0.0.1", features = ["migrate"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
serde_json = "1"

使用 PostgreSQL 时关闭默认 feature 并选择所需功能:

afastorm = { version = "0.0.1", default-features = false, features = [
    "derive", "postgres", "migrate", "uuid", "chrono"
] }

更多 feature 及其依赖见 Cargo Features。字段类型的准确映射见 SQLite 类型和PostgreSQL 类型。

连接数据库

SQLite:

let orm = Orm::connect("sqlite://app.db?mode=rwc").await?;

PostgreSQL:

let orm = Orm::connect("postgres://user:password@localhost/app").await?;

请将凭据保存在环境变量或密钥管理系统中,不要提交到版本控制。连接字符串可从 DATABASE_URL 等环境变量读取。

注册模型并使用 Repository

use afastorm::{ModelRegistry, Orm};

let orm = Orm::connect(database_url)
    .await?
    .with_models(ModelRegistry::new().register::<User>());
let users = orm.repo::<User>()?;

创建 Repository 前必须注册对应模型。注册不会自动创建表;生产环境建议使用经过审查的迁移。 完整示例见模型、CRUD 指南和 Repository 与查询。

运行测试

SQLite 测试:

cargo test --no-default-features --features derive,sqlite,migrate

PostgreSQL 集成测试需要指向专用测试数据库的 AFASTORM_TEST_DATABASE_URL:

cargo test --no-default-features --features derive,postgres,migrate --test orm_postgres -- --ignored

这些测试会创建表并写入测试数据,绝不要将生产或共享数据库配置为测试目标。