重新生成Postrgres错误:权限被拒绝:“ pg_largeobject”是系统目录

时间:2019-05-12 20:18:52

标签: postgresql asp.net-core

设置

  • ASP.Net Core 2.2
  • Postgres 10.6
  • 重生3.2

问题上下文

我已经创建了一个带有用于集成测试的测试项目的ASP.NET Core 2.2 Web API。

(我之前在SQL Server中使用过Respawn多次,但这是我第一次在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
    }
}

当Respawn尝试将我的数据库恢复到检查点时,就会发生此问题。它返回以下错误:

  

消息:Npgsql.PostgresException:42501:权限被拒绝:“ pg_largeobject”是系统目录

我只是从Postgres开始,但据我所知,postgres用户本质上是服务器上的超级用户,所以我不确定为什么它不具有某些权限

我已经尝试过搜索该异常,但是我找不到与Respawn一起发生的与此错误有关的任何信息,因此我决定在此处发布。

0 个答案:

没有答案