go-urlsh/internal/db/initialize.go

23 lines
582 B
Go

package db
import (
"codeberg.org/lauralani/go-urlsh/models"
"context"
"database/sql"
"fmt"
"github.com/uptrace/bun"
"github.com/uptrace/bun/dialect/pgdialect"
"github.com/uptrace/bun/driver/pgdriver"
"os"
)
func InitializeDB() error {
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(os.Getenv("DATABASE_URL"))))
models.DB = bun.NewDB(sqldb, pgdialect.New())
_, err := models.DB.NewCreateTable().IfNotExists().Model((*models.Link)(nil)).Exec(context.Background())
if err != nil {
return fmt.Errorf("couldn't create database: [%w]", err)
}
return nil
}