| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | package dbimport (	"fmt"	"github.com/gravitl/netmaker/servercfg"	"gorm.io/driver/postgres"	"gorm.io/gorm"	"gorm.io/gorm/logger")// postgresConnector for initializing and// connecting to a postgres database.type postgresConnector struct{}// postgresConnector.connect connects and// initializes a connection to postgres.func (pg *postgresConnector) connect() (*gorm.DB, error) {	pgConf := servercfg.GetSQLConf()	dsn := fmt.Sprintf(		"host=%s port=%d user=%s password=%s dbname=%s sslmode=%s connect_timeout=5",		pgConf.Host,		pgConf.Port,		pgConf.Username,		pgConf.Password,		pgConf.DB,		pgConf.SSLMode,	)	db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{		Logger: logger.Default.LogMode(logger.Silent),	})	if err != nil {		return nil, err	}	// ensure netmaker_v1 schema exists.	err = db.Exec("CREATE SCHEMA IF NOT EXISTS netmaker_v1").Error	if err != nil {		return nil, err	}	// set the netmaker_v1 schema as the default schema.	err = db.Exec("SET search_path TO netmaker_v1").Error	if err != nil {		return nil, err	}	return db, nil}
 |