3 个版本

0.1.2 2022年5月29日
0.1.1 2022年5月29日
0.1.0 2022年5月29日
0.0.1 2022年5月16日

#2181数据库接口

Download history 17/week @ 2024-07-06 157/week @ 2024-07-27

174 每月下载

MITGPL-3.0 许可证

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