From 1de536cc502dd942251b06273e5fd2448eca26f3 Mon Sep 17 00:00:00 2001 From: vitorsilvalima Date: Wed, 25 Mar 2026 10:38:08 -0300 Subject: [PATCH 1/2] Refactor schema initialization in main.go to improve error handling and maintainability --- main.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 27bbfe82..6fd7c0dd 100755 --- a/main.go +++ b/main.go @@ -386,16 +386,6 @@ func main() { // Set DB reference in S3Manager for lazy client initialization GetS3Manager().SetDB(db) - // Initialize the schema - if err = initializeSchema(db); err != nil { - log.Fatal().Err(err).Msg("Failed to initialize schema") - // Perform cleanup before exiting - if err := db.Close(); err != nil { - log.Error().Err(err).Msg("Failed to close database connection during cleanup") - } - os.Exit(1) - } - var dbLog waLog.Logger if *waDebug != "" { dbLog = waLog.Stdout("Database", *waDebug, *colorOutput) @@ -420,6 +410,21 @@ func main() { os.Exit(1) } + // Initialize the schema + if err = initializeSchema(db); err != nil { + log.Fatal().Err(err).Msg("Failed to initialize schema") + // Perform cleanup before exiting + if err := db.Close(); err != nil { + log.Error().Err(err).Msg("Failed to close database connection during cleanup") + } + os.Exit(1) + } + + if err != nil { + log.Fatal().Err(err).Msg("Error initializing schema") + os.Exit(1) + } + serverMode := HTTP if *mode == "stdio" { serverMode = Stdio From 302555802e7726fa51319bd145327c8e178e9bbb Mon Sep 17 00:00:00 2001 From: vitorsilvalima Date: Wed, 25 Mar 2026 10:38:17 -0300 Subject: [PATCH 2/2] fix(migrations): update index creation for whatsmeow_message_secrets to ensure compatibility with PostgreSQL --- main.go | 5 ----- migrations.go | 9 ++++++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 6fd7c0dd..36b2bedf 100755 --- a/main.go +++ b/main.go @@ -420,11 +420,6 @@ func main() { os.Exit(1) } - if err != nil { - log.Fatal().Err(err).Msg("Error initializing schema") - os.Exit(1) - } - serverMode := HTTP if *mode == "stdio" { serverMode = Stdio diff --git a/migrations.go b/migrations.go index bbd182fb..46f2a3a0 100644 --- a/migrations.go +++ b/migrations.go @@ -220,9 +220,12 @@ END $$; ` const addWhatsmeowMessageSecretsMessageIDIndexSQL = ` -CREATE INDEX CONCURRENTLY IF NOT EXISTS whatsmeow_message_secrets_message_id_idx -ON public.whatsmeow_message_secrets (message_id); - +-- PostgreSQL version +DO $$ +BEGIN + CREATE INDEX IF NOT EXISTS whatsmeow_message_secrets_message_id_idx + ON whatsmeow_message_secrets (message_id); +END $$; -- SQLite version (handled in code) `