aboutsummaryrefslogtreecommitdiff
path: root/seed/seeder/tern.go
diff options
context:
space:
mode:
Diffstat (limited to 'seed/seeder/tern.go')
-rw-r--r--seed/seeder/tern.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/seed/seeder/tern.go b/seed/seeder/tern.go
new file mode 100644
index 0000000..8eff9d5
--- /dev/null
+++ b/seed/seeder/tern.go
@@ -0,0 +1,28 @@
+package seeder
+
+import (
+ "context"
+ "os"
+
+ "github.com/jackc/tern/v2/migrate"
+ "gitlab.com/alexkavon/newsstand/src/db"
+)
+
+func MigrateDatabase(dbpool *db.Db, migrationspath string) error {
+ conn, err := dbpool.Conn().Acquire(context.Background())
+ if err != nil {
+ return err
+ }
+ m, err := migrate.NewMigrator(context.Background(), conn.Conn(), "public.schema_version")
+ if err != nil {
+ return err
+ }
+ // load migration files
+ err = m.LoadMigrations(os.DirFS(migrationspath))
+ if err != nil {
+ return err
+ }
+
+ // migrate!
+ return m.Migrate(context.Background())
+}