Add scheduled rotating local backups

This commit is contained in:
Mikhail Chusavitin
2026-02-11 19:48:40 +03:00
parent 7fbf813952
commit a1edca3be9
8 changed files with 559 additions and 22 deletions

View File

@@ -11,6 +11,7 @@ import (
"strings"
"time"
"git.mchus.pro/mchus/quoteforge/internal/appstate"
"git.mchus.pro/mchus/quoteforge/internal/appmeta"
"github.com/glebarez/sqlite"
mysqlDriver "github.com/go-sql-driver/mysql"
@@ -49,6 +50,14 @@ func New(dbPath string) (*LocalDB, error) {
return nil, fmt.Errorf("creating data directory: %w", err)
}
if cfgPath, err := appstate.ResolveConfigPathNearDB("", dbPath); err == nil {
if _, err := appstate.EnsureRotatingLocalBackup(dbPath, cfgPath); err != nil {
return nil, fmt.Errorf("backup local data: %w", err)
}
} else {
return nil, fmt.Errorf("resolve config path: %w", err)
}
db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{
Logger: logger.Default.LogMode(logger.Silent),
})