【问题标题】:Adding ActiveRecord on top of a Rails + Mongoid install在 Rails + Mongoid 安装之上添加 ActiveRecord
【发布时间】:2020-06-26 11:52:14
【问题描述】:

我有一个使用 Rails 5.2 和 Mongoid 7 的现有项目,我之前禁用了所有与 activerecord 相关的模块。

我们正在与商业智能数据仓库进行一些同步,我发现this gem 这似乎是一个很好的起点:我计划使用 ActiveRecord 和这个适配器来轻松实现将数据推送到我的亚马逊的代码用于 BI 目的的 Aurora DB。

我创建了一个简单的模型

# model/test.rb
class Test < ActiveRecord::Base
end

我已经添加了一个database.yml

# config/database.yml
development:
  adapter: aurora_serverless
  ...

但是当我尝试对模型做任何事情时,它说它无法连接

ActiveRecord::ConnectionNotEstablished: 找不到与“主”池的连接

我是否缺少其他使 ActiveRecord 工作的东西?我需要一些额外的 Railties 等吗?就好像根本没有读取database.yml文件一样

【问题讨论】:

  • 你试过运行rails db:migrate:reset吗?
  • 嗯,看来我确实错过了 config/application.rb 中负责读取 database.yml 文件和配置 ActiveRecord 适配器的 require 'active_record/railtie'

标签: ruby-on-rails ruby activerecord ruby-on-rails-5


【解决方案1】:

这是我最终做的事情的总结

  • 在您的 Gemfile 中添加所需的 gem(事实上,我添加的 gem 甚至不需要 mysql2 gem,因为 mysql2 依赖于本地操作系统库,所以您很可能会遇到很多错误)

  • 创建一个config/database.yml 文件,并为您需要的每个环境拥有一个密钥,以及您需要的 AR 配置

  • 在application.rb中,添加require 'active_record/railtie'(railtie将从database.yml文件初始化连接)

  • 创建一些模型

  • 也许您需要额外的适配器用于本地/测试/暂存/生产环境

  • 如果您使用 docker-compose,请为 SQL DB 添加容器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2011-05-28
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多