robotech 0.4.0

Backend service implementation for the RoboTech platform, providing RESTful APIs and business logic for web applications.
Documentation
use crate::db::DbSettings;
use sea_orm::{ConnectOptions, Database, DatabaseConnection};
use std::sync::OnceLock;

/// 数据库连接
pub static DB_CONN: OnceLock<DatabaseConnection> = OnceLock::new();

/// 初始化数据库
pub async fn init_db(db_settings: DbSettings) {
    // 获取数据库配置
    let mut opt = ConnectOptions::new(db_settings.url);

    // 设置sql日志按什么级别输出
    opt.sqlx_logging_level(log::LevelFilter::Trace);

    // 连接数据库
    let connection = Database::connect(opt).await.expect("连接数据库失败");
    // 设置数据库连接到全局变量中
    DB_CONN
        .set(connection.clone())
        .expect("无法设置数据库连接池");
}