在此迁移之前,我使用 Makara gem 来拆分 DB 连接以进行写入和读取,如下所示:
production:
<<: *default
url: postgresql-makara:///
makara:
sticky: true
connections:
- role: master
name: primary
url: <%= ENV["DATABASE_URL"] %>
- name: replica
url: <%= ENV["ANALYTICS_URL"] %>
这是迁移到 Rails 6 后我当前的 database.yml 文件
default: &default
adapter: postgresql
encoding: unicode
development:
primary:
<<: *default
database: hot_seller_development
follower:
<<: *default
database: hot_seller_development
replica: true
production:
primary:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
follower:
<<: *default
url: <%= ENV['ANALYTICS_URL'] %>
replica: true
我的 Heroku 应用程序已连接到 Amazon RDS,每当我将此更改推送到生产环境时,postgres 日志都会显示,
“2021-09-28 11:13:06 UTC:ec2-52-XXXX.compute-1.amazonaws.com(57186):ucorXXX@d1XXX:[8428]:LOG: 无法从客户端接收数据:连接重置为peer" <-- 这是具有写访问权限的数据库
2021-09-28 11:14:06 UTC:ec2-XXXXX.compute-1.amazonaws.com(47640):anal@d1octXXXX:[445]:ERROR: permission denied for relationship users <--这是读取的数据库使用权
似乎我的应用程序被降级为使用具有读取访问权限的 db,因为它无法与具有写入访问权限的 db 连接。
有没有人有类似的问题,并与我分享你是如何解决的?另外,您将如何测试?
提前致谢!