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:
@@ -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{}
|
||||
|
||||
Reference in New Issue
Block a user