From 10a547bcf2132f20aeae96f9e379a638bae6b205 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Fri, 19 Oct 2018 06:59:57 -0500 Subject: [PATCH] add FilterListsDesignTimeDbContextFactory ref #593 --- .../FilterListsDesignTimeDbContextFactory.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/FilterLists.Data/FilterListsDesignTimeDbContextFactory.cs diff --git a/src/FilterLists.Data/FilterListsDesignTimeDbContextFactory.cs b/src/FilterLists.Data/FilterListsDesignTimeDbContextFactory.cs new file mode 100644 index 000000000..20745f371 --- /dev/null +++ b/src/FilterLists.Data/FilterListsDesignTimeDbContextFactory.cs @@ -0,0 +1,31 @@ +using System; +using JetBrains.Annotations; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; + +namespace FilterLists.Data +{ + [UsedImplicitly] + public class FilterListsDesignTimeDbContextFactory : IDesignTimeDbContextFactory + { + private readonly int commandTimeoutSecs = (int)TimeSpan.FromMinutes(30).TotalSeconds; + + /// + /// increases command timeout for design time migrations + /// + public FilterListsDbContext CreateDbContext(string[] args) + { + var optionsBuilder = new DbContextOptionsBuilder(); + optionsBuilder.UseMySql( + @"", //BLOCKED: pass connection string https://github.com/aspnet/EntityFrameworkCore/issues/8332 + o => + { + o.MigrationsAssembly("FilterLists.Api"); + o.CommandTimeout(commandTimeoutSecs); + } + ); + + return new FilterListsDbContext(optionsBuilder.Options); + } + } +} \ No newline at end of file