Skip to content

Commit

Permalink
Add logger to migration context
Browse files Browse the repository at this point in the history
  • Loading branch information
LucHeart committed Feb 5, 2025
1 parent de5889e commit ed401ba
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
5 changes: 4 additions & 1 deletion API/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@
Log.Information("Running database migrations...");
using var scope = app.Services.CreateScope();

await using var migrationContext = new MigrationOpenShockContext(config.Db.Conn, config.Db.Debug);
await using var migrationContext = new MigrationOpenShockContext(
config.Db.Conn,
config.Db.Debug,
scope.ServiceProvider.GetRequiredService<ILoggerFactory>());
var pendingMigrations = migrationContext.Database.GetPendingMigrations().ToArray();

if (pendingMigrations.Length > 0)
Expand Down
11 changes: 9 additions & 2 deletions Common/OpenShockDb/OpenShockContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,21 @@ namespace OpenShock.Common.OpenShockDb;
/// </summary>
public class MigrationOpenShockContext : OpenShockContext
{
private readonly string _connectionString = string.Empty;
private readonly string? _connectionString = null;
private readonly bool _debug;
private readonly bool _migrationTool;
private readonly ILoggerFactory? _loggerFactory = null;

public MigrationOpenShockContext()
{
_migrationTool = true;
}

public MigrationOpenShockContext(string connectionString, bool debug)
public MigrationOpenShockContext(string connectionString, bool debug, ILoggerFactory loggerFactory)
{
_connectionString = connectionString;
_debug = debug;
_loggerFactory = loggerFactory;
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
Expand All @@ -34,7 +36,12 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
ConfigureOptionsBuilder(optionsBuilder, "Host=localhost;Database=openshock;Username=openshock;Password=openshock", true);
return;
}
if(string.IsNullOrWhiteSpace(_connectionString))
throw new InvalidOperationException("Connection string is not set.");
ConfigureOptionsBuilder(optionsBuilder, _connectionString, _debug);

if (_loggerFactory != null)
optionsBuilder.UseLoggerFactory(_loggerFactory);
}
}

Expand Down

0 comments on commit ed401ba

Please sign in to comment.