【发布时间】:2012-04-30 02:05:44
【问题描述】:
我对 Rails 很陌生,所以希望这不是一个愚蠢的问题。
我正在尝试让 rails 使用具有两个不同用户帐户的 postgresql 数据库。但是,我希望能够在这些帐户之间切换,因此它们对数据库具有相同的权限(理想情况下,它们都不是 postgresql 超级用户)。
我在 postgres 中创建了一个NOLOGIN 角色,它是数据库的所有者。然后将两个用户帐户分配给此角色。但是,每当我执行rake db:migrate 时,它都会使用户帐户(而不是角色)成为表 的所有者。如果我然后切换用户,第二个用户将没有第一个用户创建的表的正确权限。
拥有两个帐户的原因是能够快速切换,例如当我需要在不停机的情况下更改密码时。
有没有办法告诉 Rails 在创建表时使用特定角色作为所有者?(或者如果没有两个帐户在同一个 postgresql 角色中,也许有更好的方法来完成此任务?)
更新:到目前为止,我发现 this solution 可以作为外部脚本手动运行并将所有表的所有权更改为 NOLOGIN 角色,但我希望有更优雅的东西或者更适合 rails 的东西。
【问题讨论】:
标签: ruby-on-rails-3 postgresql roles