Rails:InsufficientPrivilege:错误:关系schema_migrations

时间:2018-02-23 19:37:24

标签: ruby-on-rails postgresql

在我的rails应用中,我在postgresql文件中使用database.yml作为我的适配器。我想重命名数据库并将其重新分配给不同的所有者。所以我继续运行:

改变了我的postgres数据库
ALTER DATABASE old_name RENAME TO new_name;
CREATE ROLE new_role WITH PASSWORD 'pw123';
ALTER USER new_role CREATEDB;
ALTER USER new_role LOGIN;

然后我也相应地修改了我的database.yml文件

毕竟,当我再次运行应用程序时,错误:InsufficientPrivilege: ERROR: permission denied for relation schema_migrations

这个新角色拥有前任所有者的完全相同的特权,但我不知道为什么它会对新老板大喊大叫。

我相信我在这里错过了一件小事,但我不知道是什么。那么我该怎么办才能让我的应用程序接受新的postgresql更改呢?

1 个答案:

答案 0 :(得分:1)

数据库已更改所有权,但其中的对象尚未更改。因此架构仍然属于旧用户,新用户没有权限。

在权限和所有权方面,databasea是与所有其他对象一样的对象。使用类比,你不会因为拥有房子而拥有房子里的所有东西。

REASSIGN OWNED SQL命令可以更改数据库中所有对象的所有权。