快速开始
添加依赖
默认启用 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
这些测试会创建表并写入测试数据,绝不要将生产或共享数据库配置为测试目标。