mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-20 06:38:45 +05:00
added postgres configuration option to choose the schema(#4318)
This commit is contained in:
committed by
Dan Christian Bogos
parent
863f837bd2
commit
cf720b0618
@@ -28,7 +28,7 @@ import (
|
||||
)
|
||||
|
||||
// NewPostgresStorage returns the posgres storDB
|
||||
func NewPostgresStorage(host, port, name, user, password, sslmode string, maxConn, maxIdleConn int, connMaxLifetime time.Duration) (*SQLStorage, error) {
|
||||
func NewPostgresStorage(host, port, name, user, password, sslmode, pgSchema string, maxConn, maxIdleConn int, connMaxLifetime time.Duration) (*SQLStorage, error) {
|
||||
connectString := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s sslmode=%s", host, port, name, user, password, sslmode)
|
||||
db, err := gorm.Open(postgres.Open(connectString), &gorm.Config{AllowGlobalUpdate: true})
|
||||
if err != nil {
|
||||
@@ -41,6 +41,9 @@ func NewPostgresStorage(host, port, name, user, password, sslmode string, maxCon
|
||||
if err = postgressStorage.Db.Ping(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if pgSchema != "" {
|
||||
postgressStorage.Db.Exec(fmt.Sprintf("set search_path='%s'", pgSchema))
|
||||
}
|
||||
postgressStorage.Db.SetMaxIdleConns(maxIdleConn)
|
||||
postgressStorage.Db.SetMaxOpenConns(maxConn)
|
||||
postgressStorage.Db.SetConnMaxLifetime(connMaxLifetime)
|
||||
|
||||
@@ -67,7 +67,7 @@ func NewStorDBConn(dbType, host, port, name, user, pass, marshaler string,
|
||||
case utils.MetaMongo:
|
||||
db, err = NewMongoStorage(opts.MongoConnScheme, host, port, name, user, pass, marshaler, utils.StorDB, stringIndexedFields, opts.MongoQueryTimeout)
|
||||
case utils.MetaPostgres:
|
||||
db, err = NewPostgresStorage(host, port, name, user, pass, opts.PgSSLMode,
|
||||
db, err = NewPostgresStorage(host, port, name, user, pass, opts.PgSSLMode, opts.PgSchema,
|
||||
opts.SQLMaxOpenConns, opts.SQLMaxIdleConns, opts.SQLConnMaxLifetime)
|
||||
case utils.MetaMySQL:
|
||||
db, err = NewMySQLStorage(host, port, name, user, pass, opts.SQLMaxOpenConns, opts.SQLMaxIdleConns,
|
||||
|
||||
@@ -108,7 +108,7 @@ func TestStorDBit(t *testing.T) {
|
||||
if storDB, err = NewPostgresStorage(storDBCfg.StorDbCfg().Host,
|
||||
storDBCfg.StorDbCfg().Port, storDBCfg.StorDbCfg().Name,
|
||||
storDBCfg.StorDbCfg().User, storDBCfg.StorDbCfg().Password,
|
||||
storDBCfg.StorDbCfg().Opts.PgSSLMode, 100, 10, 0); err != nil {
|
||||
storDBCfg.StorDbCfg().Opts.PgSSLMode, storDBCfg.StorDbCfg().Opts.PgSchema, 100, 10, 0); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
storDB.(*SQLStorage).db.Config.Logger = logger.Default.LogMode(logger.Silent)
|
||||
|
||||
Reference in New Issue
Block a user