syz/store/store.go

41 lines
580 B
Go

package store
import (
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
type Store struct {
DB *gorm.DB
}
func NewStore(dsn string) (*Store, error) {
pgConfig := postgres.Config{
DSN: dsn,
PreferSimpleProtocol: false,
}
db, err := gorm.Open(postgres.New(pgConfig), &gorm.Config{})
if err != nil {
return nil, err
}
return &Store{
DB: db,
}, nil
}
func (s *Store) Close() error {
db, err := s.DB.DB()
if err != nil {
return err
}
return db.Close()
}
func (s *Store) Migrate(dst ...interface{}) error {
return s.DB.AutoMigrate(dst...)
}