Commit c86f9f6d authored by Mahmoud Aglan's avatar Mahmoud Aglan

Make createDatabase idempotent: drop leftovers from failed attempts

Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 290c88e6
...@@ -71,6 +71,10 @@ private function createDatabase(string $dbName, string $dbUser, string $dbPasswo ...@@ -71,6 +71,10 @@ private function createDatabase(string $dbName, string $dbUser, string $dbPasswo
$adminConn = config('manager.shared_pg_admin_connection'); $adminConn = config('manager.shared_pg_admin_connection');
$escapedPassword = str_replace("'", "''", $dbPassword); $escapedPassword = str_replace("'", "''", $dbPassword);
// Idempotent: drop leftovers from failed previous attempts
DB::connection($adminConn)->statement("DROP DATABASE IF EXISTS \"{$dbName}\"");
DB::connection($adminConn)->statement("DROP USER IF EXISTS \"{$dbUser}\"");
DB::connection($adminConn)->statement("CREATE USER \"{$dbUser}\" WITH PASSWORD '{$escapedPassword}'"); DB::connection($adminConn)->statement("CREATE USER \"{$dbUser}\" WITH PASSWORD '{$escapedPassword}'");
DB::connection($adminConn)->statement("CREATE DATABASE \"{$dbName}\" OWNER \"{$dbUser}\""); DB::connection($adminConn)->statement("CREATE DATABASE \"{$dbName}\" OWNER \"{$dbUser}\"");
DB::connection($adminConn)->statement("GRANT ALL PRIVILEGES ON DATABASE \"{$dbName}\" TO \"{$dbUser}\""); DB::connection($adminConn)->statement("GRANT ALL PRIVILEGES ON DATABASE \"{$dbName}\" TO \"{$dbUser}\"");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment