chore: add run-fixes cli
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user