From 53f82c9f35e8070a2c768d03f05f001ba39e0045 Mon Sep 17 00:00:00 2001 From: Nikitin Aleksandr Date: Thu, 23 Nov 2023 15:34:13 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20Connect?= =?UTF-8?q?=5FWithApplicationName=5Ferr()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- postgres_gorm/postgres_gorm.go | 30 ++++++++++++++++++++++++++--- postgres_gorm/postgres_gorm_test.go | 19 +++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/postgres_gorm/postgres_gorm.go b/postgres_gorm/postgres_gorm.go index fde74f34..5a321a3b 100644 --- a/postgres_gorm/postgres_gorm.go +++ b/postgres_gorm/postgres_gorm.go @@ -7,6 +7,7 @@ import ( "errors" "github.com/ManyakRus/starter/logger" "github.com/ManyakRus/starter/ping" + "strings" "time" //"github.com/jackc/pgconn" @@ -73,6 +74,14 @@ func Connect() { // Connect_err - подключается к базе данных func Connect_err() error { var err error + err = Connect_WithApplicationName_err("") + + return err +} + +// Connect_WithApplicationName_err - подключается к базе данных, с указанием имени приложения +func Connect_WithApplicationName_err(ApplicationName string) error { + var err error if Settings.DB_HOST == "" { FillSettings() @@ -84,7 +93,7 @@ func Connect_err() error { //defer cancel() // get the database connection URL. - dsn := GetDSN() + dsn := GetDSN(ApplicationName) // conf := &gorm.Config{} @@ -249,6 +258,18 @@ func StartDB() { } +// Start - делает соединение с БД, отключение и др. +func Start(ApplicationName string) { + Connect_WithApplicationName_err(ApplicationName) + + stopapp.GetWaitGroup_Main().Add(1) + go WaitStop() + + stopapp.GetWaitGroup_Main().Add(1) + go ping_go() + +} + // FillSettings загружает переменные окружения в структуру из файла или из переменных окружения func FillSettings() { Settings = SettingsINI{} @@ -298,12 +319,15 @@ func FillSettings() { } // GetDSN - возвращает строку соединения к базе данных -func GetDSN() string { +func GetDSN(ApplicationName string) string { + ApplicationName = strings.ReplaceAll(ApplicationName, " ", "_") + dsn := "host=" + Settings.DB_HOST + " " dsn += "user=" + Settings.DB_USER + " " dsn += "password=" + Settings.DB_PASSWORD + " " dsn += "dbname=" + Settings.DB_NAME + " " - dsn += "port=" + Settings.DB_PORT + " sslmode=disable TimeZone=UTC" + dsn += "port=" + Settings.DB_PORT + " sslmode=disable TimeZone=UTC " + dsn += "application_name=" + ApplicationName return dsn } diff --git a/postgres_gorm/postgres_gorm_test.go b/postgres_gorm/postgres_gorm_test.go index f2606e9a..c0118bde 100644 --- a/postgres_gorm/postgres_gorm_test.go +++ b/postgres_gorm/postgres_gorm_test.go @@ -15,9 +15,6 @@ import ( ) func TestConnect_err(t *testing.T) { - //Connect_Panic() - - //ProgramDir := micro.ProgramDir_Common() config.LoadEnv() err := Connect_err() if err != nil { @@ -106,3 +103,19 @@ func TestGetConnection(t *testing.T) { CloseConnection() } + +func TestConnect_WithApplicationName_err(t *testing.T) { + + config.LoadEnv() + err := Connect_WithApplicationName_err("starter test") + if err != nil { + t.Error("TestConnect_WithApplicationName_err error: ", err) + } + + //micro.Pause(60 * 1000) + + err = CloseConnection_err() + if err != nil { + t.Error("TestConnect_WithApplicationName_err() error: ", err) + } +}