Как заполнить базу данных Hangfire в ядре asp.net 2.0
Я пытаюсь интегрировать "Hangfire" в мое существующее приложение ASP.NET Core. Изучая документацию, похоже, что база данных Hangfire должна быть создана, если мы хотим использовать опцию хранения SQL Server. Но было бы очень неприятно создавать БД каждый раз, когда мы запускаем новый сервер.
Есть ли способ, которым я мог бы заполнить БД с включенной опцией хранения SQL, а не из класса запуска, как это?
services.AddHangfire(options =>
options.UseSqlServerStorage(Configuration["HangfireConnection"]));
0 ответов
Хорошим решением может быть изолирование этой проблемы от некоторых сценариев TSQL и запуск этих сценариев при запуске приложения или перед запуском ваших тестов (в зависимости от вашего сценария), но быстрое решение, которое я использовал раньше, выглядит примерно так (на основе этого сообщение).
public class HangfireContext : DbContext
{
public HangfireContext(DbContextOptions options)
: base(options)
{
Database.EnsureCreated();
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
var connectionString = Configuration.GetConnectionString("HangfireConnectionString");
var optionsBuilder = new DbContextOptionsBuilder<HangfireContext>();
optionsBuilder.UseSqlServer(connectionString);
var hangfireDbContext = new HangfireContext(optionsBuilder.Options);
services.AddHangfire(config =>
config.UseSqlServerStorage(connectionString));
}
}