#postgresql #database-migrations #tokio-postgres #driver #migration #wrapper #opinionated

bin+lib degen-sql

基于 tokio-postgres 的 rust postgres 数据库引擎

4 个版本

0.1.6 2024 年 1 月 18 日
0.1.4 2023 年 11 月 1 日
0.1.2 2023 年 10 月 20 日
0.1.0 2023 年 10 月 3 日

数据库接口 中排名第 2686

Download history 14/week @ 2024-03-30 4/week @ 2024-04-06

每月下载量 53
用于 vibegraph

MIT 许可证

21KB
421 行代码(不包括注释)

Degen Sql

为 rust 提供的具有偏见的 postgres 驱动程序,并对 tokio-postgres 进行了轻量级封装。

轻松建立 postgres 连接并在文件夹中运行迁移。


cargo add degen-sql

关于 migrate 和 rollback_full 脚本的一些说明

由于您无法运行依赖项的脚本,建议您将此存储库中的 'scripts' 文件夹复制到您的项目中,然后在 Cargo.toml 中设置二进制文件以运行它们。

然后,您将在项目中使用 migrate 脚本和 rollback 脚本。

第 1 步。

设置您的 postgres env 变量



DB_HOST="db.co....blb.supabase.co"

DB_USER="postgres"
DB_NAME="postgres"

DB_PASSWORD="Foo....baR"


第 2 步。

在您的代码中使用


 
 
use degen_sql::db::postgres::postgres_db::{Database,DatabaseCredentials};
  

use dotenvy::dotenv;
use std::env;
 
 
async fn main() -> io::Result<()> {
    dotenv().ok();  //you dont HAVE to load them in like this but this is typical. Do not forget this if you use ::from_env()!!

   
 
   
    let database_credentials = DatabaseCredentials::from_env();   //or you can use DatabaseCredentials { ... } and create the struct manually
  
    let database = Arc::new(
        Database::connect(
        database_credentials, None
    ).await.unwrap());
      
  
    //EXAMPLE USING THE DATABASE CONNECTION WITH ACTIX 
     
    HttpServer::new(move || {
        

        let app_state = AppState {
            database: Arc::clone(&database) 
        };

        App::new()
            .app_data(Data::new(app_state)) // Here is where we inject our database for our endpoints to use 
             
            .configure(  ...routes ...   )
             
            
    })
    .bind("0.0.0.0:3000")?
    .run()
    .await
}




第 3 步

构建您的迁移和模型。如果您想查看此功能的示例,请参阅 vibegraph 项目

依赖项

~13–26MB
~377K SLoC