MCPcopy Create free account
hub / github.com/TryCatchLearn/Overflow / PostgresDbExtensions

Class PostgresDbExtensions

StatsService/Extensions/PostgresDbExtensions.cs:5–35  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3namespace StatsService.Extensions;
4
5public static class PostgresDbExtensions
6{
7 public static async Task EnsurePostgresDatabaseExistsAsync(this string connectionString)
8 {
9 var builder = new NpgsqlConnectionStringBuilder(connectionString);
10 var targetDb = builder.Database;
11
12 // Clone and switch to admin db ("postgres")
13 builder.Database = "postgres";
14 await using var adminConn = new NpgsqlConnection(builder.ToString());
15
16 await adminConn.OpenAsync();
17
18 // Check if the database already exists
19 var existsCommand = new NpgsqlCommand(
20 $"SELECT 1 FROM pg_database WHERE datname = @dbName", adminConn);
21 existsCommand.Parameters.AddWithValue("dbName", targetDb!);
22 var exists = await existsCommand.ExecuteScalarAsync();
23
24 if (exists == null)
25 {
26 var createCommand = new NpgsqlCommand($"CREATE DATABASE \"{targetDb}\"", adminConn);
27 await createCommand.ExecuteNonQueryAsync();
28 Console.WriteLine($"✅ Created PostgreSQL database '{targetDb}'");
29 }
30 else
31 {
32 Console.WriteLine($"ℹ️ PostgreSQL database '{targetDb}' already exists");
33 }
34 }
35}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…