package migrations import ( "database/sql" "fmt" ) func MigrateExternalRefColumn(db *sql.DB) error { var columnExists bool rows, err := db.Query("PRAGMA table_info(issues)") if err != nil { return fmt.Errorf("failed to check schema: %w", err) } defer func() { _ = rows.Close() }() for rows.Next() { var cid int var name, typ string var notnull, pk int var dflt *string err := rows.Scan(&cid, &name, &typ, ¬null, &dflt, &pk) if err != nil { return fmt.Errorf("failed to scan column info: %w", err) } if name == "external_ref" { columnExists = true break } } if err := rows.Err(); err != nil { return fmt.Errorf("error reading column info: %w", err) } if !columnExists { _, err := db.Exec(`ALTER TABLE issues ADD COLUMN external_ref TEXT`) if err != nil { return fmt.Errorf("failed to add external_ref column: %w", err) } } return nil }