Enforce canonical database naming (beads.db) - bd-165
- Added CanonicalDatabaseName constant (beads.db) and LegacyDatabaseNames list - Updated bd init to use canonical name via constant - Added daemon validation to reject non-canonical database names - Updated bd migrate to use canonical name constant - Enhanced FindDatabasePath to warn when using legacy database names - All database discovery now prefers beads.db with backward compatibility Closes bd-165
This commit is contained in:
@@ -1162,11 +1162,23 @@ func runDaemonLoop(interval time.Duration, autoCommit, autoPush bool, logPath, p
|
||||
for _, db := range validDBs {
|
||||
log.log(" - %s", filepath.Base(db))
|
||||
}
|
||||
log.log("Run 'bd init' to migrate to beads.db or manually remove old databases")
|
||||
log.log("")
|
||||
log.log("Beads requires a single canonical database: %s", beads.CanonicalDatabaseName)
|
||||
log.log("Run 'bd init' to migrate legacy databases")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// Validate using canonical name
|
||||
dbBaseName := filepath.Base(daemonDBPath)
|
||||
if dbBaseName != beads.CanonicalDatabaseName {
|
||||
log.log("Error: Non-canonical database name: %s", dbBaseName)
|
||||
log.log("Expected: %s", beads.CanonicalDatabaseName)
|
||||
log.log("")
|
||||
log.log("Run 'bd init' to migrate to canonical name")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
log.log("Using database: %s", daemonDBPath)
|
||||
|
||||
store, err := sqlite.New(daemonDBPath)
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"github.com/fatih/color"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/beads"
|
||||
"github.com/steveyegge/beads/internal/configfile"
|
||||
"github.com/steveyegge/beads/internal/storage/sqlite"
|
||||
)
|
||||
@@ -48,7 +49,7 @@ and database file. Optionally specify a custom issue prefix.`,
|
||||
// Use global dbPath if set via --db flag or BEADS_DB env var, otherwise default to .beads/beads.db
|
||||
initDBPath := dbPath
|
||||
if initDBPath == "" {
|
||||
initDBPath = filepath.Join(".beads", "beads.db")
|
||||
initDBPath = filepath.Join(".beads", beads.CanonicalDatabaseName)
|
||||
}
|
||||
|
||||
// Migrate old database files if they exist
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/fatih/color"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/beads"
|
||||
"github.com/steveyegge/beads/internal/storage/sqlite"
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
@@ -73,7 +74,7 @@ This command:
|
||||
}
|
||||
|
||||
// Check if beads.db exists and is current
|
||||
targetPath := filepath.Join(beadsDir, "beads.db")
|
||||
targetPath := filepath.Join(beadsDir, beads.CanonicalDatabaseName)
|
||||
var currentDB *dbInfo
|
||||
var oldDBs []*dbInfo
|
||||
|
||||
@@ -271,7 +272,7 @@ This command:
|
||||
if jsonOutput {
|
||||
outputJSON(map[string]interface{}{
|
||||
"status": "success",
|
||||
"current_database": "beads.db",
|
||||
"current_database": beads.CanonicalDatabaseName,
|
||||
"version": Version,
|
||||
"migrated": needsMigration,
|
||||
"version_updated": needsVersionUpdate,
|
||||
|
||||
Reference in New Issue
Block a user