Skip to main content

Crate wae_database

Crate wae_database 

Source
Expand description

§WAE Database - 数据库服务抽象层

提供统一的数据库操作抽象,基于 Turso (Limbo) 后端实现。 Turso 是一个用 Rust 重写的 SQLite 兼容数据库,支持异步 I/O。

§ORM 功能

  • Entity trait: 定义数据库实体
  • FromRow/ToRow trait: 行映射
  • QueryBuilder: 查询构建器
  • Repository: CRUD 操作

§Schema 功能

  • TableSchema: 表结构定义
  • ColumnDef: 列定义
  • IndexDef: 索引定义

§值类型统一

本模块统一使用 wae_types::Value 作为值类型, 内部自动转换为数据库原生类型。


数据库模块 - 提供统一的数据库抽象层。

§主要功能

  • 多数据库支持: 支持 PostgreSQL、MySQL、SQLite
  • 连接池: 内置连接池管理
  • 事务支持: 支持数据库事务
  • 迁移工具: 集成数据库迁移

§技术栈

  • ORM: SeaORM
  • 连接池: sea-orm
  • 异步运行时: Tokio

§使用示例

use wae_database::Value;

fn main() {
    let value = Value::String("hello".to_string());
    println!("{:?}", value);
}

§支持的数据库

数据库驱动
PostgreSQLsqlx-postgres
MySQLsqlx-mysql
SQLitesqlx-sqlite

Modules§

col
列类型快捷构造函数

Structs§

ColumnDef
列定义
DatabaseLinkConfig
数据库链接配置(保留向后兼容)
DatabaseSchema
数据库 schema 定义
ForeignKeyDef
外键定义
IndexDef
索引定义
SchemaConfig
完整的 schema 配置(包含多个数据库)
TableSchema
表结构定义

Enums§

ColumnType
列类型
DatabaseType
数据库类型
ReferentialAction
外键引用行为
Value
动态值类型

Functions§

auto_export_schemas
在 debug 模式下自动导出 schema 到默认路径
clear_schemas
清空注册表
create_schema_config_from_registered
从已注册的 schemas 创建 SchemaConfig(将所有表放在默认数据库中)
export_schema_config_to_yaml
将 SchemaConfig 导出为 YAML 字符串
export_schema_config_to_yaml_file
将 SchemaConfig 导出到 YAML 文件
export_schemas_to_yaml
将所有已注册的 TableSchema 导出为 YAML 字符串
export_schemas_to_yaml_file
将所有已注册的 TableSchema 导出到 YAML 文件
export_sql_for_all_databases
导出所有数据库类型的 SQL 到文件
generate_full_sql_for_registered_schemas
为所有已注册的 schema 生成完整的 SQL(使用当前数据库类型)
generate_full_sql_for_registered_schemas_for
为所有已注册的 schema 生成完整的 SQL(指定数据库类型)
get_registered_schemas
获取所有已注册的 TableSchema
get_schema
获取指定名称的 TableSchema
load_and_register_schemas_from_yaml_file
从 YAML 文件加载并注册所有 TableSchema(兼容旧格式)
load_schema_config_from_yaml
从 YAML 字符串解析 SchemaConfig
load_schema_config_from_yaml_file
从 YAML 文件加载 SchemaConfig
load_schemas_from_yaml
从 YAML 字符串解析 TableSchema 列表(兼容旧格式)
load_schemas_from_yaml_file
从 YAML 文件加载 TableSchema 列表(兼容旧格式)
register_schema
注册 TableSchema 到全局注册表
register_schemas
批量注册 TableSchema 到全局注册表