package migrations import ( "database/sql" "embed" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database/pgx/v5" "github.com/golang-migrate/migrate/v4/source/iofs" ) //go:embed *.sql var migrationFiles embed.FS func Migrate(db *sql.DB) error { //create database driver driver, err := pgx.WithInstance(db, &pgx.Config{}) if err != nil { } // Create IFS source from embedded files source, err := iofs.New(migrationFiles, ".") if err != nil { return err } //creat new migrations instance m, err := migrate.NewWithInstance("iofs", source, "pgx", driver) if err != nil { return err } // Run Migrations if err := m.Up(); err != nil && err != migrate.ErrNoChange { return err } return nil }