Skip to main content

agentmux_srv/migrations/
m0004_registry_from_sqlite.rs

1// Copyright 2026, AgentMux Corp.
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::registry;
5use super::{Migration, MigrationContext, MigrationError, MigrationScope};
6
7pub struct M0004RegistryFromSqlite;
8
9impl Migration for M0004RegistryFromSqlite {
10    fn id(&self) -> &'static str { "0004_registry_from_sqlite" }
11    fn scope(&self) -> MigrationScope { MigrationScope::Global }
12    fn description(&self) -> &'static str { "Migrate named agent instances from SQLite to shared file registry" }
13
14    fn up(&self, ctx: &MigrationContext) -> Result<(), MigrationError> {
15        let registry_root = ctx.home.join("shared").join("agents").join("registry");
16        let reg = registry::Registry::open(registry_root)
17            .map_err(|e| MigrationError(format!("registry_from_sqlite: open registry: {}", e)))?;
18        registry::migrate_from_sqlite_once(&ctx.home, &reg)
19            .map(|_| ())
20            .map_err(|e| MigrationError(format!("registry_from_sqlite: {}", e)))
21    }
22}