41 lines
580 B
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...)
|
|
}
|