refactor: unify data directory structure
Unify user data directory from fragmented layout to consistent nested format: - Move WebDAV from: data/files/<username> → data/<username>/files/ - Move CalDAV from: data/<username>/cal-<name> → data/<username>/calendars/<name> - Move CardDAV from: data/<username>/card-<name> → data/<username>/addressbooks/<name> Changes: - internal/store/store.go: Update collectionPath() to map collection names - internal/store/migrate.go: Add idempotent Migrate() method - internal/store/migrate_test.go: Comprehensive migration tests - internal/webdav/handler.go: Use new unified path structure - cmd/server/main.go: Auto-run migration on startup - tools/nidusctl/main.go: Add migrate subcommand - Update tests to verify new structure URL endpoints unchanged - only on-disk structure modified. All tests pass.
This commit is contained in:
@@ -51,6 +51,13 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// ---- Run migration if data directory needs restructuring ----
|
||||
if err := st.Migrate(); err != nil {
|
||||
logger.Error("migration failed", "error", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
logger.Info("data directory migration completed")
|
||||
|
||||
// ---- Database (users, calendars, address books, sharing) ----
|
||||
dbPath := filepath.Join(cfg.Storage.DataDir, "nidus.db")
|
||||
dbase, err := db.Open(dbPath)
|
||||
|
||||
Reference in New Issue
Block a user