Skip to content

Commit ed401ba

Browse files
committed
Add logger to migration context
1 parent de5889e commit ed401ba

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

API/Program.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@
9999
Log.Information("Running database migrations...");
100100
using var scope = app.Services.CreateScope();
101101

102-
await using var migrationContext = new MigrationOpenShockContext(config.Db.Conn, config.Db.Debug);
102+
await using var migrationContext = new MigrationOpenShockContext(
103+
config.Db.Conn,
104+
config.Db.Debug,
105+
scope.ServiceProvider.GetRequiredService<ILoggerFactory>());
103106
var pendingMigrations = migrationContext.Database.GetPendingMigrations().ToArray();
104107

105108
if (pendingMigrations.Length > 0)

Common/OpenShockDb/OpenShockContext.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,21 @@ namespace OpenShock.Common.OpenShockDb;
1212
/// </summary>
1313
public class MigrationOpenShockContext : OpenShockContext
1414
{
15-
private readonly string _connectionString = string.Empty;
15+
private readonly string? _connectionString = null;
1616
private readonly bool _debug;
1717
private readonly bool _migrationTool;
18+
private readonly ILoggerFactory? _loggerFactory = null;
1819

1920
public MigrationOpenShockContext()
2021
{
2122
_migrationTool = true;
2223
}
2324

24-
public MigrationOpenShockContext(string connectionString, bool debug)
25+
public MigrationOpenShockContext(string connectionString, bool debug, ILoggerFactory loggerFactory)
2526
{
2627
_connectionString = connectionString;
2728
_debug = debug;
29+
_loggerFactory = loggerFactory;
2830
}
2931

3032
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
@@ -34,7 +36,12 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
3436
ConfigureOptionsBuilder(optionsBuilder, "Host=localhost;Database=openshock;Username=openshock;Password=openshock", true);
3537
return;
3638
}
39+
if(string.IsNullOrWhiteSpace(_connectionString))
40+
throw new InvalidOperationException("Connection string is not set.");
3741
ConfigureOptionsBuilder(optionsBuilder, _connectionString, _debug);
42+
43+
if (_loggerFactory != null)
44+
optionsBuilder.UseLoggerFactory(_loggerFactory);
3845
}
3946
}
4047

0 commit comments

Comments
 (0)