From 263bba264aad91b9cae89c546c2ad3528d819071 Mon Sep 17 00:00:00 2001 From: iven Date: Wed, 6 May 2026 10:30:58 +0800 Subject: [PATCH] =?UTF-8?q?chore(db):=20=E5=86=BB=E7=BB=93=E6=8E=A8?= =?UTF-8?q?=E8=BF=9F=E6=A8=A1=E5=9D=97=E8=8F=9C=E5=8D=95=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/erp-server/migration/src/lib.rs | 2 + .../m20260505_000124_freeze_deferred_menus.rs | 63 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 crates/erp-server/migration/src/m20260505_000124_freeze_deferred_menus.rs diff --git a/crates/erp-server/migration/src/lib.rs b/crates/erp-server/migration/src/lib.rs index b9d5b58..08dadd7 100644 --- a/crates/erp-server/migration/src/lib.rs +++ b/crates/erp-server/migration/src/lib.rs @@ -123,6 +123,7 @@ mod m20260505_000120_create_ai_knowledge_rules; mod m20260505_000121_create_ai_knowledge_references; mod m20260505_000122_create_ai_knowledge_guides; mod m20260505_000123_update_ai_prompts_system_instruction; +mod m20260505_000124_freeze_deferred_menus; pub struct Migrator; @@ -253,6 +254,7 @@ impl MigratorTrait for Migrator { Box::new(m20260505_000121_create_ai_knowledge_references::Migration), Box::new(m20260505_000122_create_ai_knowledge_guides::Migration), Box::new(m20260505_000123_update_ai_prompts_system_instruction::Migration), + Box::new(m20260505_000124_freeze_deferred_menus::Migration), ] } } diff --git a/crates/erp-server/migration/src/m20260505_000124_freeze_deferred_menus.rs b/crates/erp-server/migration/src/m20260505_000124_freeze_deferred_menus.rs new file mode 100644 index 0000000..f46ecf5 --- /dev/null +++ b/crates/erp-server/migration/src/m20260505_000124_freeze_deferred_menus.rs @@ -0,0 +1,63 @@ +//! 冻结推迟模块的菜单 — 将 visible 设为 false + +use sea_orm_migration::prelude::*; + +#[derive(DeriveMigrationName)] +pub struct Migration; + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + let db = manager.get_connection(); + + let frozen_paths = [ + "/health/care-plans", + "/health/shifts", + "/health/family-proxy", + "/health/medications", + "/health/dialysis", + "/health/schedules", + "/health/appointments", + ]; + + for path in &frozen_paths { + db.execute(sea_orm::Statement::from_string( + sea_orm::DatabaseBackend::Postgres, + format!( + "UPDATE menus SET visible = false WHERE path = '{}'", + path + ), + )) + .await?; + } + + Ok(()) + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + let db = manager.get_connection(); + + let frozen_paths = [ + "/health/care-plans", + "/health/shifts", + "/health/family-proxy", + "/health/medications", + "/health/dialysis", + "/health/schedules", + "/health/appointments", + ]; + + for path in &frozen_paths { + db.execute(sea_orm::Statement::from_string( + sea_orm::DatabaseBackend::Postgres, + format!( + "UPDATE menus SET visible = true WHERE path = '{}'", + path + ), + )) + .await?; + } + + Ok(()) + } +}