Hangfire. NET Базовая база данных не существует - PrepareSchemaIfНеобходимо - PullRequest
1 голос
/ 13 марта 2020

У меня есть. NET Базовое веб-приложение, которое размещено на docker образе. Это приложение использует PostgreSQL, которое размещено в облачной службе базы данных.

Мы добавили Hangfire, который будет использовать ту же облачную службу базы данных, что и наше основное приложение.

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddHangfire(x => x.UsePostgreSqlStorage(ConnectionString));
    ...
}

и в методе Configure :

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    app.UseHangfireServer();
    app.UseHangfireDashboard();
    ...
}

Теперь у нас есть проблема с запуском приложения, если наша служба базы данных недоступна (или база данных не существует).

Я пытался использовать:

services.AddHangfire(x => x.UsePostgreSqlStorage(ConnectionString, new PostgreSqlStorageOptions
{
    PrepareSchemaIfNecessary = false
}));

но теперь я не могу создать схему базы данных, когда служба базы данных запущена и работает. Я не смог найти сценарии миграции для Hangfire. PostgreSql, поэтому я могу использовать их для других бизнес-миграций.

Я знаю, что для Hangfire.SqlServer есть скрипт Install. sql, с помощью которого мы можем создать схему базы данных, но за PostgreSql ничего.

В конвейере CI / CD мы хотим сначала создать и запустить приложение, а затем применить сценарии миграции к службе базы данных, поэтому у нас нет база данных доступна при запуске приложения.

...