在MyModel
上,我使用使数据库复制正常工作的配置
connects_to database: { writing: :primary, reading: :follower }
在某些迁移中,存在类似查询:
MyModel.update_all(...)
它们的结果是:
PG::QueryCanceled: ERROR: canceling statement due to statement timeout
如果删除connects_to database: { writing: :primary, reading: :follower }
,我将不再收到此错误,该错误以某种方式证明复制设置是造成迁移文件中此错误的原因。
我知道我可以开始修复所有迁移,但我不愿意这样做..
[我注意到,在默认情况下运行database.yml
或rails s
任务时,rails会自动打开与rake
文件中指定的第一个数据库的DB连接。运行迁移时使用此连接。在我们的例子中,该数据库名为:primary
。