无法在 AWS RDS Postgre 上执行 InitialCreate:“架构公共权限被拒绝”

问题描述 投票:0回答:0

当 EF Core 在新数据库上执行 InitialCreate Migration 时,它会创建数据库,然后创建 __EFMigrationsHistory 表;在 PostgreSql 中,这是在数据库的公共模式中创建的。

当我在一个空的本地服务器上运行迁移时,一切正常。当我在一个空的 RDS 服务器上运行它时,当它尝试创建迁移历史记录表时,我收到错误“Permission denied for schema public”。

我看到很多关于类似问题的建议,涉及对公共模式授予权限;但我看不出有什么方法可以在 EF Core 创建数据库和创建迁移历史记录表之间运行任何类型的代码。而且由于我的多租户方案需要在没有用户干预的情况下进行迁移,所以我不能很好地求助于手动授权。

我认为这与 AWS 为 Postgre 所做的一些自定义设置有关,比如禁用超级用户以支持 rds 超级用户,或类似的东西;但是并排查看我能想到的所有设置,我找不到两台服务器之间的任何显着差异。

关于可能导致这种情况发生的原因以及如何让迁移正常工作有什么建议吗?

postgresql entity-framework-core amazon-rds entity-framework-migrations database-schema
© www.soinside.com 2019 - 2024. All rights reserved.