From: Ashish Jain Date: Tue, 4 Nov 2025 07:18:17 +0000 (+0000) Subject: Resolved the MME Standalone Deployment Issue X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=a2de05a2331e982a74f5049464cbadfddbec809c;p=aiml-fw%2Fawmf%2Fmodelmgmtservice.git Resolved the MME Standalone Deployment Issue Adding a check to verify if "training_manager_database" exists, and if it doesn't exists, create it. Issue-Id: AIMLFW-307 Change-Id: Ibc800088b3a079ceafb961ad3137b22ed1854d34 Signed-off-by: ashishj1729 --- diff --git a/main.go b/main.go index ed29860..3f42ea9 100644 --- a/main.go +++ b/main.go @@ -18,6 +18,7 @@ limitations under the License. package main import ( + "database/sql" "fmt" "net/http" "os" @@ -44,6 +45,41 @@ func main() { logging.INFO("config mgr prepared", "configmgr", configManager) // setup the database connection + // Step 1: Connect to the default 'postgres' database + defaultDSN := fmt.Sprintf( + "host=%s user=%s password=%s dbname=postgres port=%s sslmode=disable", + configManager.DB.PG_HOST, + configManager.DB.PG_USER, + configManager.DB.PG_PASSWORD, + configManager.DB.PG_PORT, + ) + + defaultDB, err := sql.Open("postgres", defaultDSN) + if err != nil { + logging.ERROR(fmt.Sprintf("Failed to connect to default database: %v", err)) + } + defer defaultDB.Close() + + // Step 2: Check if target database exists + var exists bool + checkQuery := fmt.Sprintf("SELECT EXISTS(SELECT 1 FROM pg_database WHERE datname = '%s')", configManager.DB.PG_DBNAME) + err = defaultDB.QueryRow(checkQuery).Scan(&exists) + if err != nil { + logging.ERROR(fmt.Sprintf("Failed to check database existence: %v", err)) + } + + // Step 3: Create database if missing + if !exists { + createQuery := fmt.Sprintf("CREATE DATABASE %s", configManager.DB.PG_DBNAME) + _, err = defaultDB.Exec(createQuery) + if err != nil { + logging.ERROR(fmt.Sprintf("Failed to create database %s: %v", configManager.DB.PG_DBNAME, err)) + } + logging.INFO(fmt.Sprintf("Database '%s' created successfully.", configManager.DB.PG_DBNAME)) + } else { + logging.INFO(fmt.Sprintf("Database '%s' already exists.", configManager.DB.PG_DBNAME)) + } + // connection string DSN := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%s sslmode=disable ",