UNPKG

@boundless-oss/atlas

Version:

Atlas - MCP Server for comprehensive startup project management

94 lines (81 loc) 2.83 kB
import type { SQLiteManager } from '../sqlite-manager.js'; /** * Migration to remove 'planning' status from the agile module * * This migration: * 1. Updates all stories with 'planning' status to 'backlog' * 2. Updates all sprints with 'planning' status to 'active' * 3. Updates all epics with 'planning' status to 'planned' */ export async function removePlanningStatus(db: SQLiteManager): Promise<void> { try { // Start transaction await db.run('BEGIN TRANSACTION'); // Update stories with planning status to backlog const storiesResult = await db.run( `UPDATE agile_stories SET status = 'backlog', updated_at = ? WHERE status = 'planning'`, [Date.now()] ); if (storiesResult.success) { console.log(`Updated ${storiesResult.data?.changes || 0} stories from 'planning' to 'backlog' status`); } // Update sprints with planning status to active const sprintsResult = await db.run( `UPDATE agile_sprints SET status = 'active', updated_at = ? WHERE status = 'planning'`, [Date.now()] ); if (sprintsResult.success) { console.log(`Updated ${sprintsResult.data?.changes || 0} sprints from 'planning' to 'active' status`); } // Update epics with planning status to planned const epicsResult = await db.run( `UPDATE agile_epics SET status = 'planned', updated_at = ? WHERE status = 'planning'`, [Date.now()] ); if (epicsResult.success) { console.log(`Updated ${epicsResult.data?.changes || 0} epics from 'planning' to 'planned' status`); } // Update releases with planning status to in_progress const releasesResult = await db.run( `UPDATE roadmap_releases SET status = 'in_progress', updated_at = ? WHERE status = 'planning'`, [Date.now()] ); if (releasesResult.success) { console.log(`Updated ${releasesResult.data?.changes || 0} releases from 'planning' to 'in_progress' status`); } // Commit transaction await db.run('COMMIT'); console.log('Successfully removed planning status from all tables'); } catch (error) { // Rollback on error await db.run('ROLLBACK'); console.error('Failed to remove planning status:', error); throw error; } } /** * Run the migration */ export async function up(db: SQLiteManager): Promise<void> { await removePlanningStatus(db); } /** * Rollback the migration (not recommended) * This would require adding 'planning' status back to the codebase */ export async function down(db: SQLiteManager): Promise<void> { console.warn('Rolling back planning status removal is not recommended'); console.warn('This would require adding planning status back to the codebase'); }