aboutsummaryrefslogtreecommitdiff
path: root/seed/seeder/tern.go
blob: 8eff9d547034d2057111d218ce565dad115be439 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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())
}