fix discovery

This commit is contained in:
2025-04-08 08:13:41 +04:00
parent 3cd8894f36
commit 17b1994b28
4 changed files with 317 additions and 16 deletions

View File

@@ -1,10 +1,14 @@
pub mod column;
pub mod db;
pub mod table;
use crate::generator::DatabaseUrl;
use super::{Module, ModulesContext};
use color_eyre::Result;
use db::DbType;
use serde::Deserialize;
use serde_inline_default::serde_inline_default;
use table::Table;
#[derive(Debug, Clone, Deserialize)]
#[serde(default)]
@@ -83,8 +87,10 @@ impl DiscoveryFilterConfig {
}
}
#[derive(Debug, Clone)]
pub struct DiscoveredSchema {
pub tables: Vec<Table>,
pub database_type: DbType,
}
#[derive(Debug)]
@@ -114,7 +120,16 @@ impl Module for DiscoveryModule {
let url = url.clone();
let (stmts, db_type) = db::get_tables(url.0, config).await?;
tracing::info!(?stmts, ?db_type);
let tables = stmts
.into_iter()
.map(Table::new)
.collect::<Result<Vec<Table>>>()?;
tracing::info!(?tables, ?db_type);
let discovered = DiscoveredSchema {
tables,
database_type: db_type,
};
ctx.get_anymap_mut().insert(discovered);
// db::generate(ctx).await?;
}
Ok(())