From b03f12507c1c53b3599bece3ded0ad39753e65fd Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Tue, 23 Jan 2024 06:33:41 -0500 Subject: seed package to seed database on the fly --- seed/seeder/tern.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 seed/seeder/tern.go (limited to 'seed/seeder/tern.go') 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()) +} -- cgit v1.2.3