db prov
This commit is contained in:
parent
1293ef678e
commit
6e99f1c057
1 changed files with 8 additions and 7 deletions
|
|
@ -46,14 +46,15 @@ END $$;`, sqlQuoteLiteral(p.DBUser), sqlQuoteIdent(p.DBUser), sqlQuoteLiteral(p.
|
||||||
return fmt.Errorf("create/alter role failed: %w", err)
|
return fmt.Errorf("create/alter role failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := adminDB.ExecContext(ctx, fmt.Sprintf(`DO $$
|
var dbExists bool
|
||||||
BEGIN
|
if err := adminDB.QueryRowContext(ctx, `SELECT EXISTS (SELECT 1 FROM pg_database WHERE datname = $1)`, p.DBName).Scan(&dbExists); err != nil {
|
||||||
IF NOT EXISTS (SELECT 1 FROM pg_database WHERE datname = %s) THEN
|
return fmt.Errorf("check database existence failed: %w", err)
|
||||||
CREATE DATABASE %s OWNER %s;
|
}
|
||||||
END IF;
|
if !dbExists {
|
||||||
END $$;`, sqlQuoteLiteral(p.DBName), sqlQuoteIdent(p.DBName), sqlQuoteIdent(p.DBUser))); err != nil {
|
if _, err := adminDB.ExecContext(ctx, fmt.Sprintf(`CREATE DATABASE %s OWNER %s`, sqlQuoteIdent(p.DBName), sqlQuoteIdent(p.DBUser))); err != nil {
|
||||||
return fmt.Errorf("create database failed: %w", err)
|
return fmt.Errorf("create database failed: %w", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := a.db.ExecContext(ctx, `UPDATE projects SET db_name=$1, db_user=$2, db_password=$3 WHERE id=$4`, p.DBName, p.DBUser, p.DBPassword, p.ID); err != nil {
|
if _, err := a.db.ExecContext(ctx, `UPDATE projects SET db_name=$1, db_user=$2, db_password=$3 WHERE id=$4`, p.DBName, p.DBUser, p.DBPassword, p.ID); err != nil {
|
||||||
return fmt.Errorf("persist db credentials failed: %w", err)
|
return fmt.Errorf("persist db credentials failed: %w", err)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue