1
0
mirror of https://github.com/ManyakRus/starter.git synced 2025-11-25 23:02:22 +02:00

сделал Connect_WithApplicationName_err()

This commit is contained in:
Nikitin Aleksandr
2023-11-27 18:05:53 +03:00
parent 53f82c9f35
commit 7acf9a779a
3 changed files with 50 additions and 43 deletions

View File

@@ -8,6 +8,7 @@ import (
"github.com/ManyakRus/starter/logger"
"github.com/ManyakRus/starter/ping"
"github.com/jackc/pgx/v4"
"strings"
"time"
//"github.com/jackc/pgconn"
@@ -72,6 +73,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()
@@ -83,10 +92,10 @@ func Connect_err() error {
defer cancel()
// get the database connection URL.
databaseUrl := "postgres://" + Settings.DB_USER + ":" + Settings.DB_PASSWORD
databaseUrl += "@" + Settings.DB_HOST + ":" + Settings.DB_PORT + "/" + Settings.DB_NAME
//databaseUrl := "postgres://" + Settings.DB_USER + ":" + Settings.DB_PASSWORD
//databaseUrl += "@" + Settings.DB_HOST + ":" + Settings.DB_PORT + "/" + Settings.DB_NAME
//log.Info("BD_ADDRESS: ", Settings.DB_HOST, " BD_BASENAME: ", Settings.DB_NAME, " BD_SCHEMA: ", Settings.DB_SCHEMA)
databaseUrl := GetConnectionString(ApplicationName)
//
config, err := pgx.ParseConfig(databaseUrl)
@@ -97,16 +106,6 @@ func Connect_err() error {
log.Panicln("Unable to connect to database host: ", Settings.DB_HOST, " Error: ", err)
}
//// get the database connection URL.
//databaseUrl := "postgres://" + Settings.DB_USER + ":" + Settings.DB_PASSWORD
//databaseUrl += "@" + Settings.DB_HOST + ":5432/" + Settings.DB_NAME + "?sslmode=disable"
//
////
////Conn, err = pgx.Connect(ctx, databaseUrl)
//Conn, err = sqlx.Connect(
// "postgres",
// databaseUrl,
//)
if err == nil {
err = Conn.Ping(ctx)
}
@@ -114,6 +113,20 @@ func Connect_err() error {
return err
}
// GetConnectionString - возвращает строку соединения к базе данных
func GetConnectionString(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 += "application_name=" + ApplicationName
return dsn
}
// IsClosed проверка что база данных закрыта
func IsClosed() bool {
var otvet bool
@@ -173,13 +186,6 @@ func Reconnect(err error) {
return
}
//PgError, ok := err.(*pgconn.PgError)
//if ok {
// if PgError.Code == "P0001" { // Class P0 — PL/pgSQL Error, RaiseException
// return //нужен
// }
//}
//остановим программу т.к. она не должна работать при неработающеё БД
log.Error("STOP app. Error: ", err)
stopapp.StopApp()
@@ -243,6 +249,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{}