diesel ORM的使用
Diesel 是与 Rust 中的数据库交互的最有效方式,因为它对查询进行了安全且可组合的抽象。
Sqlite环境准备
在使用 Diesel 之前,需要从 Sqlite 官网下载并编译合适的 lib 包,并放置在 msvc 的库文件夹中。
这是很多人忽略的问题,在进行
cargo install diesel_cli --no-default-features --features sqlite
时无法正常链接,导致安装失败!
项目创建
- 使用
cargo new
创建自定义项目。 - 修改
Cargo.toml
文件依赖
[package]
name = "diesel_demo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
diesel = { version = "2.1.1", features = ["sqlite"] }
dotenvy = "0.15.7"
serde = { version = "1.0.188", features = ["derive"] }
- 安装终端工具
cargo install diesel_cli --no-default-features --features sqlite
根据需要调整数据库指定参数,例如:
cargo install diesel_cli --no-default-features --features mysql
- 使用终端工具管理数据库表结构,需要在项目根目录下维护
.env
环境变量文件
#环境变量 数据库位置
echo DATABASE_URL=./diesel_demo > .env
#生成数据库
diesel setup
#创建表结构变化脚本
#生成后会在项目根目录下生成`migrations/yyyy-MM-dd-hhmmss_table_name/up.sql`和`migrations/yyyy-MM-dd-hhmmss_table_name/down.sql`
#在里面编写初始化脚本和销毁脚本
diesel migration generate table_name
#在数据库中生成表结构
diesel migration run
#重新生成表结构
diesel migration redo
- 编写合适的Rust代码,编译,运行即可。
diesel ORM的使用
https://blog.cikaros.top/doc/861fbf6e.html