Junie: cleanups. Code fixups.
This commit is contained in:
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
@@ -69,7 +70,6 @@ func runMigration(direction string, steps int) {
|
||||
dbPath := viper.GetString("db")
|
||||
logger := log.New(os.Stdout, "MCIAS Migration: ", log.LstdFlags)
|
||||
|
||||
// Ensure migrations directory exists
|
||||
absPath, err := filepath.Abs(migrationsDir)
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to get absolute path for migrations directory: %v", err)
|
||||
@@ -79,20 +79,17 @@ func runMigration(direction string, steps int) {
|
||||
logger.Fatalf("Migrations directory does not exist: %s", absPath)
|
||||
}
|
||||
|
||||
// Open database connection
|
||||
db, err := openDatabase(dbPath)
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to open database: %v", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
// Create migration driver
|
||||
driver, err := sqlite3.WithInstance(db, &sqlite3.Config{})
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to create migration driver: %v", err)
|
||||
}
|
||||
|
||||
// Create migrate instance
|
||||
m, err := migrate.NewWithDatabaseInstance(
|
||||
fmt.Sprintf("file://%s", absPath),
|
||||
"sqlite3", driver)
|
||||
@@ -100,14 +97,13 @@ func runMigration(direction string, steps int) {
|
||||
logger.Fatalf("Failed to create migration instance: %v", err)
|
||||
}
|
||||
|
||||
// Run migration
|
||||
if direction == "up" {
|
||||
if steps > 0 {
|
||||
err = m.Steps(steps)
|
||||
} else {
|
||||
err = m.Up()
|
||||
}
|
||||
if err != nil && err != migrate.ErrNoChange {
|
||||
if err != nil && !errors.Is(err, migrate.ErrNoChange) {
|
||||
logger.Fatalf("Failed to apply migrations: %v", err)
|
||||
}
|
||||
logger.Println("Migrations applied successfully")
|
||||
@@ -117,7 +113,7 @@ func runMigration(direction string, steps int) {
|
||||
} else {
|
||||
err = m.Down()
|
||||
}
|
||||
if err != nil && err != migrate.ErrNoChange {
|
||||
if err != nil && !errors.Is(err, migrate.ErrNoChange) {
|
||||
logger.Fatalf("Failed to revert migrations: %v", err)
|
||||
}
|
||||
logger.Println("Migrations reverted successfully")
|
||||
@@ -128,20 +124,17 @@ func showMigrationVersion() {
|
||||
dbPath := viper.GetString("db")
|
||||
logger := log.New(os.Stdout, "MCIAS Migration: ", log.LstdFlags)
|
||||
|
||||
// Open database connection
|
||||
db, err := openDatabase(dbPath)
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to open database: %v", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
// Create migration driver
|
||||
driver, err := sqlite3.WithInstance(db, &sqlite3.Config{})
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to create migration driver: %v", err)
|
||||
}
|
||||
|
||||
// Create migrate instance
|
||||
absPath, err := filepath.Abs(migrationsDir)
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to get absolute path for migrations directory: %v", err)
|
||||
@@ -154,10 +147,9 @@ func showMigrationVersion() {
|
||||
logger.Fatalf("Failed to create migration instance: %v", err)
|
||||
}
|
||||
|
||||
// Get current version
|
||||
version, dirty, err := m.Version()
|
||||
if err != nil {
|
||||
if err == migrate.ErrNilVersion {
|
||||
if errors.Is(err, migrate.ErrNilVersion) {
|
||||
logger.Println("No migrations have been applied yet")
|
||||
return
|
||||
}
|
||||
@@ -168,13 +160,11 @@ func showMigrationVersion() {
|
||||
}
|
||||
|
||||
func openDatabase(dbPath string) (*sql.DB, error) {
|
||||
// Ensure database directory exists
|
||||
dbDir := filepath.Dir(dbPath)
|
||||
if err := os.MkdirAll(dbDir, 0755); err != nil {
|
||||
return nil, fmt.Errorf("failed to create database directory: %w", err)
|
||||
}
|
||||
|
||||
// Open database connection
|
||||
db, err := sql.Open("sqlite3", dbPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open database: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user