Pg setup enhancement
do not create a db if already existing .. and reset the user password instead of creating if the user already exists
This commit is contained in:
parent
bdd1baeb85
commit
b2cbf1199d
1 changed files with 32 additions and 2 deletions
|
@ -285,13 +285,23 @@ class OC_Setup {
|
|||
//we cant use OC_BD functions here because we need to connect as the administrative user.
|
||||
$e_name = pg_escape_string($name);
|
||||
$e_user = pg_escape_string($user);
|
||||
$query = "CREATE DATABASE \"$e_name\" OWNER \"$e_user\"";
|
||||
$query = "select datname from pg_database where datname = '$e_name'";
|
||||
$result = pg_query($connection, $query);
|
||||
if(!$result) {
|
||||
$entry='DB Error: "'.pg_last_error($connection).'"<br />';
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
echo($entry);
|
||||
}
|
||||
if(! pg_fetch_row($result)) {
|
||||
//The database does not exists... let's create it
|
||||
$query = "CREATE DATABASE \"$e_name\" OWNER \"$e_user\"";
|
||||
$result = pg_query($connection, $query);
|
||||
if(!$result) {
|
||||
$entry='DB Error: "'.pg_last_error($connection).'"<br />';
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
echo($entry);
|
||||
}
|
||||
}
|
||||
$query = "REVOKE ALL PRIVILEGES ON DATABASE \"$e_name\" FROM PUBLIC";
|
||||
$result = pg_query($connection, $query);
|
||||
}
|
||||
|
@ -299,13 +309,33 @@ class OC_Setup {
|
|||
private static function pg_createDBUser($name,$password,$connection) {
|
||||
$e_name = pg_escape_string($name);
|
||||
$e_password = pg_escape_string($password);
|
||||
$query = "CREATE USER \"$e_name\" CREATEDB PASSWORD '$e_password';";
|
||||
$query = "select * from pg_roles where rolname='$e_name';";
|
||||
$result = pg_query($connection, $query);
|
||||
if(!$result) {
|
||||
$entry='DB Error: "'.pg_last_error($connection).'"<br />';
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
echo($entry);
|
||||
}
|
||||
|
||||
if(! pg_fetch_row($result)) {
|
||||
//user does not exists let's create it :)
|
||||
$query = "CREATE USER \"$e_name\" CREATEDB PASSWORD '$e_password';";
|
||||
$result = pg_query($connection, $query);
|
||||
if(!$result) {
|
||||
$entry='DB Error: "'.pg_last_error($connection).'"<br />';
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
echo($entry);
|
||||
}
|
||||
}
|
||||
else { // change password of the existing role
|
||||
$query = "ALTER ROLE \"$e_name\" WITH PASSWORD '$e_password';";
|
||||
$result = pg_query($connection, $query);
|
||||
if(!$result) {
|
||||
$entry='DB Error: "'.pg_last_error($connection).'"<br />';
|
||||
$entry.='Offending command was: '.$query.'<br />';
|
||||
echo($entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue