update db usage and init db files
This commit is contained in:
@@ -28,8 +28,13 @@ public class SkinTrackerDbContext : DbContext
|
||||
public DbSet<TradeItem> TradeItems => Set<TradeItem>();
|
||||
public DbSet<PriceHistory> PriceHistories => Set<PriceHistory>();
|
||||
|
||||
/// <summary>The PostgreSQL schema that owns all of this context's tables.</summary>
|
||||
public const string Schema = "skintracker";
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.HasDefaultSchema(Schema);
|
||||
|
||||
modelBuilder.ApplyConfiguration(new SkinConfiguration());
|
||||
modelBuilder.ApplyConfiguration(new SkinConditionConfiguration());
|
||||
modelBuilder.ApplyConfiguration(new SteamUserConfiguration());
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Design;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace BlueLaminate.EFCore.Data;
|
||||
|
||||
@@ -7,15 +8,25 @@ public class SkinTrackerDbContextFactory : IDesignTimeDbContextFactory<SkinTrack
|
||||
{
|
||||
public SkinTrackerDbContext CreateDbContext(string[] args)
|
||||
{
|
||||
var connectionString =
|
||||
Environment.GetEnvironmentVariable("SKINTRACKER_CONNECTION")
|
||||
?? "Host=localhost;Port=5432;Database=skintracker;Username=postgres;Password=postgres";
|
||||
var connectionString = BuildConfiguration().GetConnectionString("SkinTracker")
|
||||
?? throw new InvalidOperationException(
|
||||
"Connection string 'SkinTracker' is not configured. "
|
||||
+ "Set it via user secrets (dev) or the ConnectionStrings__SkinTracker environment variable (prod).");
|
||||
|
||||
var options = new DbContextOptionsBuilder<SkinTrackerDbContext>()
|
||||
.UseNpgsql(connectionString)
|
||||
.UseNpgsql(connectionString, npgsql =>
|
||||
npgsql.MigrationsHistoryTable("__EFMigrationsHistory", SkinTrackerDbContext.Schema))
|
||||
.UseSnakeCaseNamingConvention()
|
||||
.Options;
|
||||
|
||||
return new SkinTrackerDbContext(options);
|
||||
}
|
||||
|
||||
public static IConfiguration BuildConfiguration() =>
|
||||
new ConfigurationBuilder()
|
||||
.SetBasePath(AppContext.BaseDirectory)
|
||||
.AddJsonFile("appsettings.json", optional: true)
|
||||
.AddUserSecrets<SkinTrackerDbContextFactory>(optional: true)
|
||||
.AddEnvironmentVariables()
|
||||
.Build();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user