Настройка
- ASP.Net Core 2.2
- Postgres 10,6
- Respawn 3.2
Контекст проблемы
Я создал веб-API ASP.NET Core 2.2 Web с тестовым проектом для интеграционных тестов.
(я уже много раз использовал Respawn с SQLСервер, но я впервые использую его с Postgres.)
Пример одного из моих интеграционных тестов:
[Fact]
public async Task Get_AllItemsAsync_ReturnOKStatusCode()
{
// Arrange
var itemsToAdd = new List<Item>()
{
new Item("Test", 1),
new Item("Dummy", 2)
};
var host = _fixture.Server.Host;
using (var scope = host.Services.CreateScope())
{
var scopedServices = scope.ServiceProvider;
var dbContext = scopedServices.GetRequiredService<ItemsDbContext>();
dbContext.Items.AddRange(itemsToAdd);
dbContext.SaveChanges();
}
var request = new HttpRequestMessage(HttpMethod.Get, "api/v1/items");
// Act
var response = await _fixture.Client.SendAsync(request);
// Assert
var responseString = response.Content.ReadAsStringAsync().Result;
var actualItems = JsonConvert.DeserializeObject<List<ItemViewModel>>(responseString);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(itemsToAdd.Count, actualItems.Count);
// Cleanup
using (var conn = new NpgsqlConnection("Server=localhost;Database=MyDb;User Id=postgres;Password=SecretPassword!;")
{
await conn.OpenAsync();
await _checkpoint.Reset(conn); // Error happens here
}
}
Проблема возникает при попытке повторного вызовачтобы положить мою базу данных в контрольную точку.Он возвращает следующую ошибку:
Сообщение: Npgsql.PostgresException: 42501: разрешение отклонено: «pg_largeobject» - системный каталог
Я только начинаю с Postgres, но, насколько я понимаю, пользователь postgres
по сути является суперпользователем на сервере, поэтому я не уверен, почему у этого не было бы разрешения на что-то
Я пытался поискать Google для этого исключения, но я не могу найти информацию, относящуюся к этой ошибке в связи с Respawn, поэтому я решил опубликовать здесь.