chore: add run-fixes cli

This commit is contained in:
2026-05-26 13:56:57 +02:00
parent 1eb28dad64
commit f4061c0213
2 changed files with 42 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ import (
"github.com/google/uuid"
"golang.org/x/crypto/bcrypt"
"mal/internal/database"
"mal/internal/db"
)
@@ -21,13 +22,19 @@ func main() {
}
defer func() { _ = dbConn.Close() }()
if len(os.Args) == 2 && os.Args[1] == "update-avatar" {
updateAvatars(dbConn)
return
if len(os.Args) == 2 {
switch os.Args[1] {
case "update-avatar":
updateAvatars(dbConn)
return
case "run-fixes":
runFixes(dbConn)
return
}
}
if len(os.Args) != 3 {
log.Fatalf("Usage: go run cmd/user/main.go <username> <password>\n go run cmd/user/main.go update-avatar")
log.Fatalf("Usage: go run cmd/user/main.go <username> <password>\n go run cmd/user/main.go update-avatar\n go run cmd/user/main.go run-fixes")
}
username := os.Args[1]
@@ -107,3 +114,31 @@ func updateAvatars(dbConn *sql.DB) {
fmt.Printf("Updated avatars for %d user(s)\n", count)
}
func runFixes(dbConn *sql.DB) {
if err := database.RunMigrationsAndFixes(dbConn); err != nil {
log.Fatalf("run migrations and fixes: %v", err)
}
rows, err := dbConn.Query("SELECT id, applied_at FROM data_fixes ORDER BY id ASC")
if err != nil {
log.Fatalf("list applied fixes: %v", err)
}
defer func() { _ = rows.Close() }()
count := 0
for rows.Next() {
var id string
var appliedAt string
if err := rows.Scan(&id, &appliedAt); err != nil {
log.Fatalf("scan applied fix: %v", err)
}
fmt.Printf("%s applied_at=%s\n", id, appliedAt)
count++
}
if err := rows.Err(); err != nil {
log.Fatalf("iterate applied fixes: %v", err)
}
fmt.Printf("Applied fixes: %d\n", count)
}