diff --git a/src/infra/src/table/mod.rs b/src/infra/src/table/mod.rs index db14d26180..9ed5fd7eee 100644 --- a/src/infra/src/table/mod.rs +++ b/src/infra/src/table/mod.rs @@ -31,6 +31,10 @@ pub mod short_urls; pub async fn init() -> Result<(), anyhow::Error> { distinct_values::init().await?; short_urls::init().await?; + Ok(()) +} + +pub async fn migrate() -> Result<(), anyhow::Error> { let client = ORM_CLIENT.get_or_init(connect_to_orm).await; Migrator::up(client, None).await?; Ok(()) diff --git a/src/main.rs b/src/main.rs index 3f3f33abf3..2e7de10310 100644 --- a/src/main.rs +++ b/src/main.rs @@ -221,17 +221,24 @@ async fn main() -> Result<(), anyhow::Error> { job_init_tx.send(false).ok(); panic!("check upgrade failed: {}", e); } - // migrate dashboards - if let Err(e) = migration::dashboards::run().await { - job_init_tx.send(false).ok(); - panic!("migrate dashboards failed: {}", e); - } #[allow(deprecated)] migration::upgrade_resource_names() .await .expect("migrate resource names into supported ofga format failed"); + // migrate infra_sea_orm + if let Err(e) = infra::table::migrate().await { + job_init_tx.send(false).ok(); + panic!("infra sea_orm migrate failed: {}", e); + } + + // migrate dashboards + if let Err(e) = migration::dashboards::run().await { + job_init_tx.send(false).ok(); + panic!("migrate dashboards failed: {}", e); + } + // ingester init if let Err(e) = ingester::init().await { job_init_tx.send(false).ok(); diff --git a/tests/integration_test.rs b/tests/integration_test.rs index cce658caad..986cf43fbe 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -127,6 +127,8 @@ mod tests { config::init().await.unwrap(); // init infra infra::init().await.unwrap(); + // db migration steps, since it's separated out + infra::table::migrate().await.unwrap(); openobserve::common::infra::init().await.unwrap(); // ingester init ingester::init().await.unwrap();