mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
Replace raw environment variable reads with IConfiguration in backend
This commit is contained in:
@@ -11,6 +11,11 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="dbup" Version="5.0.41" />
|
||||
<PackageReference Include="Microsoft.Data.SqlClient" Version="7.0.2" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
|
||||
<PackageReference
|
||||
Include="Microsoft.Extensions.Configuration.EnvironmentVariables"
|
||||
Version="9.0.0"
|
||||
/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Infrastructure\Infrastructure.Sql\Infrastructure.Sql.csproj" />
|
||||
|
||||
@@ -4,13 +4,14 @@ using DbUp;
|
||||
using DbUp.Engine;
|
||||
using Infrastructure.Sql;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Database.Migrations;
|
||||
|
||||
/// <summary>
|
||||
/// Entry point for the database migration runner. Reads connection details from environment
|
||||
/// variables, optionally drops and recreates the target database, and applies all SQL
|
||||
/// migration scripts embedded in this assembly using DbUp.
|
||||
/// Entry point for the database migration runner. Reads connection details from configuration
|
||||
/// (backed by environment variables), optionally drops and recreates the target database, and
|
||||
/// applies all SQL migration scripts embedded in this assembly using DbUp.
|
||||
/// </summary>
|
||||
public static class Program
|
||||
{
|
||||
@@ -27,7 +28,10 @@ public static class Program
|
||||
|
||||
try
|
||||
{
|
||||
DatabaseSettings settings = DatabaseSettings.FromEnvironment();
|
||||
IConfiguration configuration = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.Build();
|
||||
DatabaseSettings settings = DatabaseSettings.FromConfiguration(configuration);
|
||||
|
||||
if (settings.ClearDatabase)
|
||||
{
|
||||
@@ -159,28 +163,28 @@ public static class Program
|
||||
/// <summary>
|
||||
/// Builds the settings from the <c>DB_SERVER</c>, <c>DB_NAME</c>, <c>DB_USER</c>,
|
||||
/// <c>DB_PASSWORD</c>, <c>DB_TRUST_SERVER_CERTIFICATE</c>, and <c>CLEAR_DATABASE</c>
|
||||
/// environment variables.
|
||||
/// configuration values.
|
||||
/// </summary>
|
||||
/// <exception cref="InvalidOperationException">
|
||||
/// Thrown when a required environment variable is not set.
|
||||
/// Thrown when a required configuration value is not set.
|
||||
/// </exception>
|
||||
public static DatabaseSettings FromEnvironment()
|
||||
public static DatabaseSettings FromConfiguration(IConfiguration configuration)
|
||||
{
|
||||
string databaseName =
|
||||
Environment.GetEnvironmentVariable("DB_NAME")
|
||||
configuration["DB_NAME"]
|
||||
?? throw new InvalidOperationException(
|
||||
"The DB_NAME environment variable is not set."
|
||||
);
|
||||
|
||||
bool clearDatabase = string.Equals(
|
||||
Environment.GetEnvironmentVariable("CLEAR_DATABASE"),
|
||||
configuration["CLEAR_DATABASE"],
|
||||
"true",
|
||||
StringComparison.OrdinalIgnoreCase
|
||||
);
|
||||
|
||||
return new DatabaseSettings(
|
||||
SqlConnectionStringHelper.BuildConnectionString(databaseName),
|
||||
SqlConnectionStringHelper.BuildMasterConnectionString(),
|
||||
SqlConnectionStringHelper.BuildConnectionString(configuration, databaseName),
|
||||
SqlConnectionStringHelper.BuildMasterConnectionString(configuration),
|
||||
databaseName,
|
||||
clearDatabase
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#region
|
||||
|
||||
using Infrastructure.Sql;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -8,7 +9,9 @@ namespace Database.Seed.DatabaseHelpers;
|
||||
|
||||
public class ConnectionStrings
|
||||
{
|
||||
public static string SqlServerConnectionString => SqlConnectionStringHelper.BuildConnectionString();
|
||||
public static string GetSqlServerConnectionString(IConfiguration configuration) =>
|
||||
SqlConnectionStringHelper.BuildConnectionString(configuration);
|
||||
|
||||
public static string SqliteConnectionString =>
|
||||
"Data Source=SeedData/biergarten_seed_2026-07-20T05-46-02.993511Z.sqlite";
|
||||
}
|
||||
|
||||
@@ -22,9 +22,12 @@ static async Task<int> RunAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
IConfiguration configuration = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.Build();
|
||||
|
||||
ServiceCollection services = [];
|
||||
services.AddSingleton<IConfiguration>(
|
||||
new ConfigurationBuilder().Build());
|
||||
services.AddSingleton(configuration);
|
||||
services.AddInfrastructureSql();
|
||||
services.AddFeaturesBreweries();
|
||||
services.AddFeaturesLocations();
|
||||
|
||||
Reference in New Issue
Block a user