1
0
mirror of https://github.com/ManyakRus/starter.git synced 2025-11-28 23:20:10 +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

@@ -110,29 +110,6 @@ func FindDateFromTo(Connection connections.Connection) (date1_balances, date2_ba
date1_balances, date2_balances, date1_doc, date2_doc = FindDates_from_DateClosed(date_closed) date1_balances, date2_balances, date1_doc, date2_doc = FindDates_from_DateClosed(date_closed)
//// 2 месяца разделим по 1 месяцу
//carbon.SetLocation(constants.Loc)
//Date1_balance := DateNow1
//Date2_balance := carbon.Time2Carbon(DateNow1).EndOfMonth().Carbon2Time()
//if Date2_balance.After(DateNow2) {
// Date2_balance = DateNow2
//}
//Date1_doc := carbon.Time2Carbon(DateNow2).StartOfMonth().Carbon2Time()
//Date2_doc := DateNow2
//
//
////now := time.Now()
//now_start := carbon.Now().StartOfMonth().Carbon2Time()
//closed_start := carbon.Time2Carbon(date_closed).AddMonth().StartOfMonth().Carbon2Time()
////closed_start := carbon.Time2Carbon(date_closed).StartOfMonth().Carbon2Time()
//if now_start == closed_start { //дата закрытия в этом же месяце
// date_from = now_start
// date_to = carbon.Now().EndOfMonth().Carbon2Time()
//} else {
// date_from = closed_start
// date_to = carbon.Now().EndOfMonth().Carbon2Time()
//}
return date1_balances, date2_balances, date1_doc, date2_doc, nil return date1_balances, date2_balances, date1_doc, date2_doc, nil
} }

View File

@@ -8,6 +8,7 @@ import (
"github.com/ManyakRus/starter/logger" "github.com/ManyakRus/starter/logger"
"github.com/ManyakRus/starter/ping" "github.com/ManyakRus/starter/ping"
"github.com/jackc/pgx/v4" "github.com/jackc/pgx/v4"
"strings"
"time" "time"
//"github.com/jackc/pgconn" //"github.com/jackc/pgconn"
@@ -72,6 +73,14 @@ func Connect() {
// Connect_err - подключается к базе данных // Connect_err - подключается к базе данных
func Connect_err() error { func Connect_err() error {
var 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 == "" { if Settings.DB_HOST == "" {
FillSettings() FillSettings()
@@ -83,10 +92,10 @@ func Connect_err() error {
defer cancel() defer cancel()
// get the database connection URL. // get the database connection URL.
databaseUrl := "postgres://" + Settings.DB_USER + ":" + Settings.DB_PASSWORD //databaseUrl := "postgres://" + Settings.DB_USER + ":" + Settings.DB_PASSWORD
databaseUrl += "@" + Settings.DB_HOST + ":" + Settings.DB_PORT + "/" + Settings.DB_NAME //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) 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) 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 { if err == nil {
err = Conn.Ping(ctx) err = Conn.Ping(ctx)
} }
@@ -114,6 +113,20 @@ func Connect_err() error {
return err 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 проверка что база данных закрыта // IsClosed проверка что база данных закрыта
func IsClosed() bool { func IsClosed() bool {
var otvet bool var otvet bool
@@ -173,13 +186,6 @@ func Reconnect(err error) {
return 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) log.Error("STOP app. Error: ", err)
stopapp.StopApp() 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 загружает переменные окружения в структуру из файла или из переменных окружения // FillSettings загружает переменные окружения в структуру из файла или из переменных окружения
func FillSettings() { func FillSettings() {
Settings = SettingsINI{} Settings = SettingsINI{}

View File

@@ -99,3 +99,15 @@ func TestConnect(t *testing.T) {
CloseConnection() CloseConnection()
} }
func TestConnect_WithApplicationName_err(t *testing.T) {
config.LoadEnv()
err := Connect_WithApplicationName_err("test_starter_postgres_pgx")
if err != nil {
t.Error("TestConnect_WithApplicationName_err error: ", err)
}
CloseConnection()
}