1
0
mirror of https://github.com/bitwarden/server synced 2025-12-25 20:53:16 +00:00
Files
server/util/DbSeederUtility/MigrationSettingsFactory.cs
2025-10-23 16:19:34 -07:00

42 lines
1.6 KiB
C#

using Bit.Seeder.Migration.Models;
using Microsoft.Extensions.Configuration;
namespace Bit.DbSeederUtility;
public static class MigrationSettingsFactory
{
private static MigrationConfig? _migrationConfig;
public static MigrationConfig MigrationConfig
{
get { return _migrationConfig ??= LoadMigrationConfig(); }
}
private static MigrationConfig LoadMigrationConfig()
{
Console.WriteLine("Loading migration configuration...");
var configBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true, reloadOnChange: true)
.AddUserSecrets("bitwarden-Api")
.AddEnvironmentVariables();
var configuration = configBuilder.Build();
var migrationSection = configuration.GetSection("migration");
var config = new MigrationConfig();
migrationSection.Bind(config);
// Log configuration status
Console.WriteLine($"Migration configuration loaded:");
Console.WriteLine($" Source DB: {(config.Source != null ? "Configured" : "Not configured")}");
Console.WriteLine($" Destinations: {config.Destinations.Count} configured");
Console.WriteLine($" CSV Output Dir: {config.CsvSettings.OutputDir}");
Console.WriteLine($" Excluded Tables: {config.ExcludeTables.Count}");
return config;
}
}