internal static string EnsureStorageForTests(string connectionString, PartitionMap partitionMap) { var schema = "test" + Guid.NewGuid().ToString("N").Substring(0, 8); var source = partitionMap.Hosts.Select(x => { var cb = new NpgsqlConnectionStringBuilder(connectionString) { Host = x.Host, Port = x.Port, Enlist = false, }; return(Builder: cb, x.Partitions); }); Parallel.ForEach(source, src => { using (var conn = new NpgsqlConnection(src.Builder.ToString())) { conn.Open(); using (var cmd = SqlCommands.EnsureSchema(schema, src.Builder.Username)) { cmd.Connection = conn; cmd.ExecuteNonQuery(); } using (var cmd = SqlCommands.EnsureStorage(src.Partitions, schema)) { cmd.Connection = conn; cmd.ExecuteNonQuery(); } } }); return(schema); }
internal static string EnsureStorageForTests(string connectionString, string schema = null) { schema ??= "test" + Guid.NewGuid().ToString("N").Substring(0, 8); var cb = new NpgsqlConnectionStringBuilder(connectionString) { Enlist = false, }; try { using (var conn = new NpgsqlConnection(cb.ToString())) { conn.Open(); using (var cmd = SqlCommands.EnsureSchema(schema, cb.Username)) { cmd.Connection = conn; cmd.ExecuteNonQuery(); } using (var cmd = SqlCommands.EnsureStorage(schema)) { cmd.Connection = conn; cmd.ExecuteNonQuery(); } } } catch (PostgresException ex) { if (!IsThrownBecauseItAlreadyExists(ex)) { throw; } } return(schema); }