diff --git a/cmd/server/main.go b/cmd/server/main.go index 040930e..2291ca1 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -4,6 +4,7 @@ import ( "log" "net/http" "os" + "regexp" "strings" "github.com/gorilla/mux" @@ -248,6 +249,11 @@ func main() { func runMigrations(db *database.DB) error { log.Println("Running database migrations...") + // Compile regex pattern once for efficiency + // Only process numbered migrations (e.g., 001_init.sql, 002_sample_data.sql) + // Skip helper scripts like bootstrap_existing_db.sql + migrationPattern := regexp.MustCompile(`^\d{3}_.*\.sql$`) + // Create migrations tracking table if it doesn't exist createTableSQL := ` CREATE TABLE IF NOT EXISTS schema_migrations ( @@ -289,6 +295,12 @@ func runMigrations(db *database.DB) error { continue } + // Skip non-numbered migration files (e.g., bootstrap scripts) + if !migrationPattern.MatchString(entry.Name()) { + log.Printf("Skipping non-numbered migration file: %s", entry.Name()) + continue + } + // Skip if already applied if appliedMigrations[entry.Name()] { continue