From 80df8fa6e4f209873e403d1f879412893995927d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 22 Feb 2022 12:06:54 +0100 Subject: [PATCH] DB Initialisation: try named parameters Should be tested on Windows, as that's where this code will be used most often. As of now, untested. --- .../manager/persistence/initialisation.go | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/internal/manager/persistence/initialisation.go b/internal/manager/persistence/initialisation.go index d2314918..ca7e0c45 100644 --- a/internal/manager/persistence/initialisation.go +++ b/internal/manager/persistence/initialisation.go @@ -22,6 +22,7 @@ package persistence import ( "bufio" + "database/sql" "errors" "fmt" "os" @@ -56,23 +57,16 @@ func InitialSetup() error { // Has to be used by the regular Flamenco Manager runs as well, though. username := "flamenco" userPass := "flamenco" - // tx := db.Exec("CREATE USER flamenco PASSWORD ? NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN", userPass) - // if tx.Error != nil { - // return fmt.Errorf("unable to create database user '%s': %w", username, tx.Error) - // } - { - sqlDB, err := db.DB() - if err != nil { - panic(err) - } - _, err = sqlDB.Exec("CREATE USER flamenco WITH PASSWORD $1::string NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN", userPass) - if err != nil { - panic(err) - } + + tx := db.Exec("CREATE USER @user PASSWORD @pass NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN", + sql.Named("user", username), + sql.Named("pass", userPass)) + if tx.Error != nil { + return fmt.Errorf("unable to create database user '%s': %w", username, tx.Error) } // Create the databases. - tx := db.Debug().Exec("CREATE DATABASE flamenco OWNER ? ENCODING 'utf8'", username) + tx = db.Debug().Exec("CREATE DATABASE flamenco OWNER ? ENCODING 'utf8'", username) if tx.Error != nil { return fmt.Errorf("unable to create database 'flamenco': %w", tx.Error) }