我已阅读有关 Rails 6.0.0.beta3 的 MultiDb 连接切换的文档并以这种方式实现:
数据库.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: root
socket: /var/run/mysqld/mysqld.sock
development:
main:
<<: *default
database: r6_multidb_development
main_replica:
<<: *default
database: r6_multidb_development_copy
replica: true
文章模型
class Article < ApplicationRecord
connect_to database: { writing: :main, reading: :main_replica }
end
数据库 r6_multidb_development 和 r6_multidb_development_copy 都有不同的记录,我期待在创建记录时记录应该插入到 r6_multidb_development 数据库中,并且在检索记录时应该从 r6_multidb_development_copy 数据库中。但是在这两种情况下,当插入和检索记录时,它都是从 r6_multidb_development 数据库的主配置发生的。
我相信写入数据库应该从 r6_multidb_development 发生,读取应该从 r6_multidb_development_copy 发生。如果有人能解决这个问题,我将不胜感激。