connector.go 603 B

12345678910111213141516171819202122232425262728
  1. package db
  2. import (
  3. "errors"
  4. "github.com/gravitl/netmaker/servercfg"
  5. "gorm.io/gorm"
  6. )
  7. var ErrUnsupportedDB = errors.New("unsupported db type")
  8. // connector helps connect to a database,
  9. // along with any initializations required.
  10. type connector interface {
  11. connect() (*gorm.DB, error)
  12. }
  13. // newConnector detects the database being
  14. // used and returns the corresponding connector.
  15. func newConnector() (connector, error) {
  16. switch servercfg.GetDB() {
  17. case "sqlite":
  18. return &sqliteConnector{}, nil
  19. case "postgres":
  20. return &postgresConnector{}, nil
  21. default:
  22. return nil, ErrUnsupportedDB
  23. }
  24. }