Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -12,12 +12,11 @@ import (
|
||||
|
||||
var MssqlDB *sql.DB
|
||||
|
||||
// ConnectMSSQL MSSQL baglantisini ortam degiskeninden baslatir.
|
||||
func ConnectMSSQL() {
|
||||
connString := strings.TrimSpace(os.Getenv("MSSQL_CONN"))
|
||||
|
||||
if connString == "" {
|
||||
// Fallback
|
||||
connString = "server=100.127.186.137;user id=sa;password=Gi l_0150;port=1433;database=BAGGI_V3"
|
||||
log.Fatal("MSSQL_CONN tanımlı değil")
|
||||
}
|
||||
|
||||
var err error
|
||||
@@ -26,12 +25,11 @@ func ConnectMSSQL() {
|
||||
log.Fatal("MSSQL bağlantı hatası:", err)
|
||||
}
|
||||
|
||||
err = MssqlDB.Ping()
|
||||
if err != nil {
|
||||
if err = MssqlDB.Ping(); err != nil {
|
||||
log.Fatal("MSSQL erişilemiyor:", err)
|
||||
}
|
||||
|
||||
fmt.Println("✅ MSSQL bağlantısı başarılı!")
|
||||
fmt.Println("MSSQL bağlantısı başarılı")
|
||||
}
|
||||
|
||||
func GetDB() *sql.DB {
|
||||
|
||||
@@ -13,14 +13,11 @@ import (
|
||||
|
||||
var PgDB *sql.DB
|
||||
|
||||
// ConnectPostgres → PostgreSQL veritabanına bağlanır
|
||||
// ConnectPostgres PostgreSQL veritabanına bağlanır.
|
||||
func ConnectPostgres() (*sql.DB, error) {
|
||||
// Bağlantı stringi (istersen .env’den oku)
|
||||
connStr := os.Getenv("POSTGRES_CONN")
|
||||
connStr := strings.TrimSpace(os.Getenv("POSTGRES_CONN"))
|
||||
if connStr == "" {
|
||||
// fallback → sabit tanımlı bağlantı
|
||||
connStr = "host= 46.224.33.150 port=5432 user=postgres password=tayitkan dbname=baggib2b sslmode=disable"
|
||||
//connStr = "host=172.16.0.3 port=5432 user=postgres password=tayitkan dbname=baggib2b sslmode=disable"
|
||||
return nil, fmt.Errorf("POSTGRES_CONN tanımlı değil")
|
||||
}
|
||||
|
||||
db, err := sql.Open("postgres", connStr)
|
||||
@@ -28,15 +25,13 @@ func ConnectPostgres() (*sql.DB, error) {
|
||||
return nil, fmt.Errorf("PostgreSQL bağlantı hatası: %w", err)
|
||||
}
|
||||
|
||||
// =======================================================
|
||||
// 🔹 BAĞLANTI HAVUZU (AUDIT LOG UYUMLU)
|
||||
// =======================================================
|
||||
db.SetMaxOpenConns(30) // audit + api paralel çalışsın
|
||||
// Bağlantı havuzu ayarları (audit log uyumlu).
|
||||
db.SetMaxOpenConns(30)
|
||||
db.SetMaxIdleConns(10)
|
||||
db.SetConnMaxLifetime(30 * time.Minute)
|
||||
db.SetConnMaxIdleTime(5 * time.Minute) // 🔥 uzun idle audit bağlantılarını kapat
|
||||
db.SetConnMaxIdleTime(5 * time.Minute)
|
||||
|
||||
// 🔹 Test et
|
||||
// Bağlantıyı test et.
|
||||
if err = db.Ping(); err != nil {
|
||||
// Some managed PostgreSQL servers require TLS. If the current DSN uses
|
||||
// sslmode=disable and server rejects with "no encryption", retry once
|
||||
@@ -45,7 +40,7 @@ func ConnectPostgres() (*sql.DB, error) {
|
||||
strings.Contains(err.Error(), "no encryption") &&
|
||||
strings.Contains(strings.ToLower(connStr), "sslmode=disable") {
|
||||
secureConnStr := strings.Replace(connStr, "sslmode=disable", "sslmode=require", 1)
|
||||
log.Println("⚠️ PostgreSQL requires TLS, retrying with sslmode=require")
|
||||
log.Println("PostgreSQL TLS gerektiriyor, sslmode=require ile tekrar deneniyor")
|
||||
|
||||
_ = db.Close()
|
||||
db, err = sql.Open("postgres", secureConnStr)
|
||||
@@ -66,13 +61,12 @@ func ConnectPostgres() (*sql.DB, error) {
|
||||
}
|
||||
}
|
||||
|
||||
log.Println("✅ PostgreSQL bağlantısı başarılı!")
|
||||
log.Println("PostgreSQL bağlantısı başarılı")
|
||||
PgDB = db
|
||||
return db, nil
|
||||
|
||||
}
|
||||
|
||||
// GetPostgresUsers → test amaçlı ilk 5 kullanıcıyı listeler
|
||||
// GetPostgresUsers test amaçlı ilk 5 kullanıcıyı listeler.
|
||||
func GetPostgresUsers(db *sql.DB) error {
|
||||
query := `SELECT id, code, email FROM mk_dfusr ORDER BY id LIMIT 5`
|
||||
rows, err := db.Query(query)
|
||||
@@ -81,14 +75,14 @@ func GetPostgresUsers(db *sql.DB) error {
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
fmt.Println("📋 İlk 5 PostgreSQL kullanıcısı:")
|
||||
fmt.Println("İlk 5 PostgreSQL kullanıcısı:")
|
||||
for rows.Next() {
|
||||
var id int
|
||||
var code, email string
|
||||
if err := rows.Scan(&id, &code, &email); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf(" ➜ ID: %-4d | USER: %-20s | EMAIL: %s\n", id, code, email)
|
||||
fmt.Printf(" -> ID: %-4d | USER: %-20s | EMAIL: %s\n", id, code, email)
|
||||
}
|
||||
|
||||
return rows.Err()
|
||||
|
||||
Reference in New Issue
Block a user