Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit 730bb4d

Browse files
improving logging experience
1 parent abf9e71 commit 730bb4d

File tree

2 files changed

+40
-13
lines changed

2 files changed

+40
-13
lines changed

src/SqlStreamStore.Server/DatabaseInitializer.cs

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ public Task Initialize(CancellationToken cancellationToken = default)
4242
private async Task InitializeMySql(CancellationToken cancellationToken)
4343
{
4444
var connectionStringBuilder = new MySqlConnectionStringBuilder(_configuration.ConnectionString);
45+
46+
var cmdText = $"CREATE DATABASE IF NOT EXISTS `{connectionStringBuilder.Database}`";
47+
48+
Log.Information(
49+
"Creating database '{database}' at server '{server}' with the statement: {cmdText}",
50+
connectionStringBuilder.Database,
51+
connectionStringBuilder.Server,
52+
cmdText);
53+
4554
using (var connection = new MySqlConnection(
4655
new MySqlConnectionStringBuilder(_configuration.ConnectionString)
4756
{
@@ -51,7 +60,7 @@ private async Task InitializeMySql(CancellationToken cancellationToken)
5160
await connection.OpenAsync(cancellationToken).NotOnCapturedContext();
5261

5362
using (var command = new MySqlCommand(
54-
$"CREATE DATABASE IF NOT EXISTS `{connectionStringBuilder.Database}`",
63+
cmdText,
5564
connection))
5665
{
5766
await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext();
@@ -62,6 +71,19 @@ private async Task InitializeMySql(CancellationToken cancellationToken)
6271
private async Task InitializeMsSql(CancellationToken cancellationToken)
6372
{
6473
var connectionStringBuilder = new SqlConnectionStringBuilder(_configuration.ConnectionString);
74+
75+
var cmdText = $@"
76+
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'{connectionStringBuilder.InitialCatalog}')
77+
BEGIN
78+
CREATE DATABASE [{connectionStringBuilder.InitialCatalog}]
79+
END;
80+
";
81+
Log.Information(
82+
"Creating database '{database}' at server '{server}' with the statement: {cmdText}",
83+
connectionStringBuilder.InitialCatalog,
84+
connectionStringBuilder.DataSource,
85+
cmdText);
86+
6587
using (var connection = new SqlConnection(
6688
new SqlConnectionStringBuilder(_configuration.ConnectionString)
6789
{
@@ -71,12 +93,7 @@ private async Task InitializeMsSql(CancellationToken cancellationToken)
7193
await connection.OpenAsync(cancellationToken).NotOnCapturedContext();
7294

7395
using (var command = new SqlCommand(
74-
$@"
75-
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'{connectionStringBuilder.InitialCatalog}')
76-
BEGIN
77-
CREATE DATABASE [{connectionStringBuilder.InitialCatalog}]
78-
END;
79-
",
96+
cmdText,
8097
connection))
8198
{
8299
await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext();
@@ -87,6 +104,15 @@ CREATE DATABASE [{connectionStringBuilder.InitialCatalog}]
87104
private async Task InitializePostgres(CancellationToken cancellationToken)
88105
{
89106
var connectionStringBuilder = new NpgsqlConnectionStringBuilder(_configuration.ConnectionString);
107+
108+
var cmdText = $"CREATE DATABASE {connectionStringBuilder.Database}";
109+
110+
Log.Information(
111+
"Creating database '{database}' at server '{server}' with the statement: {cmdText}",
112+
connectionStringBuilder.Database,
113+
connectionStringBuilder.Host,
114+
cmdText);
115+
90116
using (var connection = new NpgsqlConnection(
91117
new NpgsqlConnectionStringBuilder(_configuration.ConnectionString)
92118
{
@@ -109,7 +135,7 @@ async Task<bool> DatabaseExists()
109135
if (!await DatabaseExists())
110136
{
111137
using (var command = new NpgsqlCommand(
112-
$"CREATE DATABASE {connectionStringBuilder.Database}",
138+
cmdText,
113139
connection))
114140
{
115141
await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext();

src/SqlStreamStore.Server/SqlStreamStoreInitializer.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Text;
44
using System.Threading;
55
using System.Threading.Tasks;
6+
using MySql.Data.MySqlClient;
67
using Npgsql;
78
using Serilog;
89
using static SqlStreamStore.Server.Constants;
@@ -49,10 +50,9 @@ private async Task InitializeMySqlStreamStore(CancellationToken cancellationToke
4950
{
5051
await streamStore.CreateSchemaIfNotExists(cancellationToken);
5152
}
52-
catch (SqlException ex)
53+
catch (MySqlException ex)
5354
{
5455
SchemaCreationFailed(streamStore.GetSchemaCreationScript, ex);
55-
throw;
5656
}
5757
}
5858
}
@@ -68,7 +68,6 @@ private async Task InitializeMsSqlStreamStore(CancellationToken cancellationToke
6868
catch (SqlException ex)
6969
{
7070
SchemaCreationFailed(streamStore.GetSchemaCreationScript, ex);
71-
throw;
7271
}
7372
}
7473
}
@@ -84,13 +83,13 @@ private async Task InitializePostgresStreamStore(CancellationToken cancellationT
8483
catch (NpgsqlException ex)
8584
{
8685
SchemaCreationFailed(streamStore.GetSchemaCreationScript, ex);
87-
throw;
8886
}
8987
}
9088
}
9189

9290
private static void SchemaCreationFailed(Func<string> getSchemaCreationScript, Exception ex)
93-
=> Log.Error(
91+
{
92+
Log.Error(
9493
new StringBuilder()
9594
.Append("Could not create schema: {ex}")
9695
.AppendLine()
@@ -101,5 +100,7 @@ private static void SchemaCreationFailed(Func<string> getSchemaCreationScript, E
101100
.ToString(),
102101
ex,
103102
getSchemaCreationScript());
103+
Environment.Exit(1);
104+
}
104105
}
105106
}

0 commit comments

Comments
 (0)