gogjango/gjango

View on GitHub
manager/createdbuser.go

Summary

Maintainability
A
0 mins
Test Coverage
package manager

import (
    "fmt"

    "github.com/go-pg/pg/v9"
    "github.com/gogjango/gjango/config"
)

// CreateDatabaseUserIfNotExist creates a database user
func CreateDatabaseUserIfNotExist(db *pg.DB, p *config.PostgresConfig) {
    statement := fmt.Sprintf(`SELECT * FROM pg_roles WHERE rolname = '%s';`, p.User)
    res, _ := db.Exec(statement)
    if res.RowsReturned() == 0 {
        statement = fmt.Sprintf(`CREATE USER %s WITH PASSWORD '%s';`, p.User, p.Password)
        _, err := db.Exec(statement)
        if err != nil {
            fmt.Println(err)
        } else {
            fmt.Printf(`Created user %s`, p.User)
        }
    } else {
        fmt.Printf("Database user %s already exists\n", p.User)
    }

}