3 个版本
0.1.2 | 2022年5月29日 |
---|---|
0.1.1 | 2022年5月29日 |
0.1.0 | 2022年5月29日 |
0.0.1 |
|
#2181 在 数据库接口
174 每月下载
56KB
1.5K SLoC
Etanol-rs
此 crate 仍在开发中!
使用方法
在 etanol/schema.etanol 中
config {
database = env("DATABASE")
database_url = env("DATABASE_URL")
}
table User {
id String @id
name String
age Integer?
isAdmin Boolean? @default(false)
}
在 .env 中
DATABASE="sqlite"
DATABASE_URL="testing.sqlite"
执行以下命令
// for install etanol command line interface
$ cargo install etanol
// for generate migration and models
$ etanol migrate dev --name [name of migration]
在 src/main.rs 中
use etanol::{ModelWhere, QueryValue};
mod database;
use database::{create_connection, user::User};
fn main() {
create_connection();
// Insert
let user = User {
id: "5".to_string(),
age: Some(5),
name: "Teste".to_string(),
..User::default()
};
user.insert().execute();
// FindOne
let _user = User::find()
.field(ModelWhere::Equal("name", "Random"))
.load()
.unwrap();
// FindMany
let _users = User::find()
.field(ModelWhere::Equal("name", "Random"))
.many()
.load()
.unwrap();
// Update
User::update()
.field(ModelWhere::Equal("id", "1"))
.value(QueryValue("name", "Matheus"))
.execute()
.unwrap();
// delete
User::delete().field(ModelWhere::Equal("id", "1")).execute();
}
依赖
~27MB
~508K SLoC