This commit is contained in:
2026-03-18 18:59:41 +01:00
parent 9f14bb2c86
commit 4f74192cb6
11 changed files with 69 additions and 15 deletions
+8 -2
View File
@@ -1,12 +1,18 @@
using Microsoft.EntityFrameworkCore;
using Musify.Application.Contracts.Infrastructure;
using Musify.Domain.Entities;
using Musify.Infrastructure.Configuration;
namespace Musify.Infrastructure.Persistence
{
public class Database(DbContextOptions<Database> dbContextOptions)
: DbContext(dbContextOptions), IDatabase
public class Database(DatabaseConfiguration configuration)
: DbContext, IDatabase
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql(configuration.ConnectionString);
}
public DbSet<User> Users => Set<User>();
public DbSet<Track> Tracks => Set<Track>();
@@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using Musify.Infrastructure.Configuration;
namespace Musify.Infrastructure.Persistence
{
@@ -12,12 +13,15 @@ namespace Musify.Infrastructure.Persistence
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("AppSettings.json")
.Build();
var connectionString = configuration.GetConnectionString("Default");
var databaseConfiguration = configuration.GetSection(DatabaseConfiguration.SectionName)
.Get<DatabaseConfiguration>()
?? throw new InvalidOperationException($"Failed to load {DatabaseConfiguration.SectionName} configuration.");
var optionsBuilder = new DbContextOptionsBuilder<Database>();
optionsBuilder.UseNpgsql(connectionString);
optionsBuilder.UseNpgsql(databaseConfiguration.ConnectionString);
return new Database(optionsBuilder.Options);
return new Database(databaseConfiguration);
}
}
}