У меня есть. 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 мы хотим сначала создать и запустить приложение, а затем применить сценарии миграции к службе базы данных, поэтому у нас нет база данных доступна при запуске приложения.