summaryrefslogtreecommitdiffhomepage
path: root/src/dbx/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbx/db.go')
-rw-r--r--src/dbx/db.go23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/dbx/db.go b/src/dbx/db.go
index e0c8e30..3a6f24a 100644
--- a/src/dbx/db.go
+++ b/src/dbx/db.go
@@ -95,9 +95,17 @@ func applyMigrations(dir string) error {
return err
}
- scripts := []string{}
+ var (
+ last string
+ scripts []string
+ )
+
for _, f := range files {
- scripts = append(scripts, f.Name())
+ if n := f.Name(); n == "last.sql" {
+ last = n
+ } else {
+ scripts = append(scripts, f.Name())
+ }
}
sort.Strings(scripts)
@@ -132,6 +140,17 @@ func applyMigrations(dir string) error {
log.Printf("Applied database migration ‘%s’", f)
}
+ if last != "" {
+ qry, err := migrations.ReadFile(filepath.Join(dir, last))
+ if err != nil {
+ return err
+ }
+ if _, err := db.Exec(string(qry)); err != nil {
+ return fmt.Errorf("error in ‘%s’: %w", last, err)
+ }
+ log.Printf("Ran ‘%s’\n", last)
+ }
+
return nil
}