summaryrefslogtreecommitdiff
path: root/storage/migrate.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-03-03 14:51:36 +0300
committerGrail Finder <wohilas@gmail.com>2026-03-03 14:51:36 +0300
commit8974d2f52c68352446a417e922590237c618ef9f (patch)
tree48ca436c213bb0b541c37387e657abe313ebcb7e /storage/migrate.go
parent6b0d03f2d632597a75e63d03a9932d189d354a2b (diff)
Fix: remove panics from code
Diffstat (limited to 'storage/migrate.go')
-rw-r--r--storage/migrate.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/storage/migrate.go b/storage/migrate.go
index decfe9c..38f9854 100644
--- a/storage/migrate.go
+++ b/storage/migrate.go
@@ -10,16 +10,18 @@ import (
//go:embed migrations/*
var migrationsFS embed.FS
-func (p *ProviderSQL) Migrate() {
+func (p *ProviderSQL) Migrate() error {
// Get the embedded filesystem
migrationsDir, err := fs.Sub(migrationsFS, "migrations")
if err != nil {
p.logger.Error("Failed to get embedded migrations directory;", "error", err)
+ return fmt.Errorf("failed to get embedded migrations directory: %w", err)
}
// List all .up.sql files
files, err := migrationsFS.ReadDir("migrations")
if err != nil {
p.logger.Error("Failed to read migrations directory;", "error", err)
+ return fmt.Errorf("failed to read migrations directory: %w", err)
}
// Execute each .up.sql file
for _, file := range files {
@@ -27,11 +29,12 @@ func (p *ProviderSQL) Migrate() {
err := p.executeMigration(migrationsDir, file.Name())
if err != nil {
p.logger.Error("Failed to execute migration %s: %v", file.Name(), err)
- panic(err)
+ return fmt.Errorf("failed to execute migration %s: %w", file.Name(), err)
}
}
}
p.logger.Debug("All migrations executed successfully!")
+ return nil
}
func (p *ProviderSQL) executeMigration(migrationsDir fs.FS, fileName string) error {