1

在此迁移之前,我使用 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 连接。

有没有人有类似的问题,并与我分享你是如何解决的?另外,您将如何测试?

提前致谢!

4

0 回答 0