5 个版本
0.1.4 | 2024 年 7 月 31 日 |
---|---|
0.1.3 | 2024 年 2 月 24 日 |
0.1.2 | 2024 年 1 月 19 日 |
0.1.1 | 2024 年 1 月 13 日 |
0.1.0 | 2024 年 1 月 7 日 |
#1108 在 数据库接口
145 每月下载量
用于 ctgen
51KB
1K SLoC
database-reflection
Rust 结构体和特质的集合,用于构建高级数据库反射。
目前处于开发中。可能存在破坏性更改和文档问题。
目前库只支持 MariaDB 的 InnoDB 表引擎。
理论上可以与 MySQL 和 InnoDB 一起工作,但截至编写时尚未确认。
使用风险自负。仍在开发中。
快速入门
手动构建
查看测试文件 integration.rs
了解如何手动构建。
use database_reflection::reflection::Database;
let db_name = "test";
let mut db = Database::new(db_name);
// and so on...
使用反射适配器
如果您的数据库设计符合本库期望的约定,您可能希望能够使用提供的 MariaDB 反射适配器构建反射。
注意:这需要启用 mariadb
功能。
use database_reflection::adapter::mariadb_innodb::MariadbInnodbReflectionAdapter;
use database_reflection::adapter::reflection_adapter::{ReflectionAdapter, ReflectionAdapterUninitialized};
use database_reflection::reflection::{Column, Constraint, Database, DefaultValue, Index, SqlDatatype, Table};
dotenvy::dotenv()?;
let connection_str = env::var("DB_CONNECTION")?;
let reflection = MariadbInnodbReflectionAdapter::new(&connection_str).connect().await?.get_reflection().await?;
注意: connection_str
是标准的 DSN。
许可证
此库(database-reflection)在 MIT 许可证下开源。
依赖
~8–19MB
~286K SLoC