sql driver to pgx driver
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
package migrate
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"context"
|
||||
"embed"
|
||||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
|
||||
_ "github.com/jackc/pgx/v5/stdlib"
|
||||
"github.com/jackc/pgx/v5"
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
)
|
||||
|
||||
//go:embed migrations/*.sql
|
||||
@@ -18,7 +19,7 @@ type Migration struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
func Migrate(logger *slog.Logger, db *sql.DB) {
|
||||
func Migrate(logger *slog.Logger, db *pgxpool.Pool) {
|
||||
logger.Info("Running migrations...")
|
||||
migrationTableSql := `
|
||||
CREATE TABLE IF NOT EXISTS migrations(
|
||||
@@ -26,7 +27,7 @@ func Migrate(logger *slog.Logger, db *sql.DB) {
|
||||
name VARCHAR(50)
|
||||
);`
|
||||
|
||||
_, err := db.Exec(migrationTableSql)
|
||||
_, err := db.Exec(context.Background(), migrationTableSql)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -38,21 +39,21 @@ func Migrate(logger *slog.Logger, db *sql.DB) {
|
||||
|
||||
for _, file := range files {
|
||||
var migration Migration
|
||||
row := db.QueryRow("SELECT * FROM migrations WHERE name = $1;", file.Name())
|
||||
row := db.QueryRow(context.Background(), "SELECT * FROM migrations WHERE name = $1;", file.Name())
|
||||
err = row.Scan(&migration.Version, &migration.Name)
|
||||
if err == sql.ErrNoRows {
|
||||
if err == pgx.ErrNoRows {
|
||||
logger.Info(fmt.Sprintf("Running migration: %s", file.Name()))
|
||||
migrationSql, err := migrations.ReadFile(fmt.Sprintf("migrations/%s", file.Name()))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = db.Exec(string(migrationSql))
|
||||
_, err = db.Exec(context.Background(), string(migrationSql))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = db.Exec("INSERT INTO migrations(name) VALUES($1);", file.Name())
|
||||
_, err = db.Exec(context.Background(), "INSERT INTO migrations(name) VALUES($1);", file.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user