claude-flow-novice
Version:
Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.
81 lines (65 loc) • 2.66 kB
text/typescript
/**
* List Migrations Script - Show Migration Status
*
* Usage:
* npm run migrations:list # List all migrations with status
* npm run migrations:list -- --pending # Show only pending migrations
* npm run migrations:list -- --applied # Show only applied migrations
*
* @module list-migrations
*/
import { createMigrationManager } from '../../src/db/migration-manager';
import * as path from 'path';
async function main() {
const args = process.argv.slice(2);
const showPending = args.includes('--pending');
const showApplied = args.includes('--applied');
const databasePath = process.env.DATABASE_PATH || './data/app.db';
const migrationsDir = path.join(__dirname, '../../src/db/migrations');
const manager = await createMigrationManager({
databasePath,
migrationsDir,
verbose: false,
});
try {
// Get all migrations
const allMigrations = await manager.discoverMigrations();
const appliedMigrations = await manager.getAppliedMigrations();
const appliedVersions = new Set(appliedMigrations.map((m) => m.version));
// Current version
const currentVersion = await manager.getCurrentVersion();
console.log('=== Migration Status ===');
console.log(`Current version: ${currentVersion || '(none)'}`);
console.log(`Total migrations: ${allMigrations.length}`);
console.log(`Applied: ${appliedMigrations.length}`);
console.log(`Pending: ${allMigrations.length - appliedMigrations.length}`);
console.log('');
// Display migrations
console.log('Migrations:');
console.log('');
for (const migration of allMigrations) {
const isApplied = appliedVersions.has(migration.version);
// Filter based on arguments
if (showPending && isApplied) continue;
if (showApplied && !isApplied) continue;
const status = isApplied ? '✅ Applied' : '⏳ Pending';
const isCurrent = migration.version === currentVersion ? ' ← CURRENT' : '';
console.log(`${status} ${migration.version} - ${migration.name}${isCurrent}`);
// Show applied date if applicable
if (isApplied) {
const appliedMigration = appliedMigrations.find((m) => m.version === migration.version);
if (appliedMigration) {
console.log(` Applied: ${appliedMigration.applied_at} (${appliedMigration.execution_time_ms}ms)`);
}
}
}
console.log('');
} catch (error) {
console.error('Error:', error);
process.exit(1);
} finally {
await manager.close();
}
}
main();