Files
beads/internal/storage/sqlite/migrations/039_source_system_column.go
beads/crew/dave f79e636000 feat: consolidate schema changes from crew directories
Merges schema additions from crew/fang, crew/giles, crew/grip, and crew/wolf:

- crystallizes: bool field for work economics (compounds vs evaporates)
- work_type: WorkType field for assignment model (mutex vs open_competition)
- source_system: string field for federation adapter tracking
- quality_score: *float32 for aggregate quality (0.0-1.0)
- delegated-from: new dependency type for work delegation chains

Migrations properly sequenced as 037-040 (after existing 036 owner_column).

Also fixes test compilation errors for removed TypeRig and IsBuiltIn references.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
2026-01-10 22:38:04 -08:00

34 lines
798 B
Go

package migrations
import (
"database/sql"
"fmt"
)
// MigrateSourceSystemColumn adds the source_system column to the issues table.
// This tracks which adapter/system created the issue for federation support.
func MigrateSourceSystemColumn(db *sql.DB) error {
// Check if column already exists
var columnExists bool
err := db.QueryRow(`
SELECT COUNT(*) > 0
FROM pragma_table_info('issues')
WHERE name = 'source_system'
`).Scan(&columnExists)
if err != nil {
return fmt.Errorf("failed to check source_system column: %w", err)
}
if columnExists {
return nil
}
// Add the source_system column
_, err = db.Exec(`ALTER TABLE issues ADD COLUMN source_system TEXT DEFAULT ''`)
if err != nil {
return fmt.Errorf("failed to add source_system column: %w", err)
}
return nil
}