Skip to content

fix(worker): force disable DB migration to avoid lock contention with server#93

Merged
lezhuu merged 1 commit into
devfrom
chun
Jan 29, 2026
Merged

fix(worker): force disable DB migration to avoid lock contention with server#93
lezhuu merged 1 commit into
devfrom
chun

Conversation

@lezhuu

@lezhuu lezhuu commented Jan 29, 2026

Copy link
Copy Markdown
Collaborator

问题

server 与 worker 共用同一 Nacos 配置且均在启动时执行数据库迁移,会竞争 pg_advisory_lock,导致容器卡在 run database migration 无法启动。

方案

仅在 worker 进程内,在加载 Nacos 后强制设置 APP_DATABASE__ALLOW_MIGRATE=false,确保 worker 永不执行迁移;server 仍按 Nacos 配置执行迁移。

变更

  • crates/worker/src/main.rs: 在 load_env_from_nacos 之后 std::env::set_var("APP_DATABASE__ALLOW_MIGRATE", "false"),并用 unsafe 块满足 Rust 2024 对 set_var 的要求。

…tion with server

- Set APP_DATABASE__ALLOW_MIGRATE=false after Nacos load so worker never runs migrations
- Wrap set_var in unsafe block for Rust 2024 edition compliance
- Prevents server/worker both running Migrator::up and hanging on pg_advisory_lock
@lezhuu
lezhuu merged commit 79e3bb1 into dev Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant