< Summary

Information
Class: OzonRepositories.Context.Identity.OzonIdentityOrderContextFactory
Assembly: OzonRepositories
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonRepositories/Context/Identity/OzonIdentityOrderContextFactory.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 8
Coverable lines: 8
Total lines: 30
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CreateDbContext(...)0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonRepositories/Context/Identity/OzonIdentityOrderContextFactory.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore;
 2using Microsoft.EntityFrameworkCore.Design;
 3using OzonRepositories.Utils;
 4
 5namespace OzonRepositories.Context.Identity;
 6
 7/// <summary>
 8/// Design-time factory для EF-тулинга (dotnet ef migrations add/database update).
 9/// Без неё тулинг поднимал контекст через DI стартап-проекта и уходил в базу из
 10/// appsettings — то есть в реальную ST2. Строка берётся только из EF_DESIGN_CONNECTION:
 11///   export EF_DESIGN_CONNECTION="Server=...;Database=...;User=...;Password=...;"
 12/// В рантайме не используется.
 13/// </summary>
 14public class OzonIdentityOrderContextFactory : IDesignTimeDbContextFactory<OzonIdentityOrderContext>
 15{
 16    public OzonIdentityOrderContext CreateDbContext(string[] args)
 17    {
 018        var optionsBuilder = new DbContextOptionsBuilder<OzonIdentityOrderContext>();
 19
 020        string connectionString =
 021            Environment.GetEnvironmentVariable("EF_DESIGN_CONNECTION")
 022            ?? throw new InvalidOperationException(
 023                "EF_DESIGN_CONNECTION environment variable is not set. " +
 024                "Set it to a valid MySQL connection string before running EF tooling.");
 25
 026        optionsBuilder.UseMySql(connectionString, St2MariaDb.ServerVersion);
 27
 028        return new OzonIdentityOrderContext(optionsBuilder.Options);
 29    }
 30}