【问题标题】:How to use ActiveRecord outside Rails?如何在 Rails 之外使用 ActiveRecord?
【发布时间】:2014-12-21 22:08:38
【问题描述】:

我正在构建一个基于六边形架构的 Rails 应用程序。

我的一个适配器是存储适配器(作为 gem 维护),它管理对数据库的访问,并为 Rails 应用程序提供简单的接口来存储和查询数据库中的数据。

我想在这个 gem 中使用 ActiveRecord 和所有 rake 任务(创建、迁移、删除、回滚)来管理数据库。

如何在 Rails 之外使用 AR,但要处理所有 rake 任务?

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord rails-postgresql


【解决方案1】:

像安装任何其他 gem 一样安装它

gem install activerecord

然后你像这样配置它

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql',
  :database => 'database',
  :username => 'user',
  :password => 'password',
  :host     => 'localhost')

然后模型可以正常继承 ActiveRecord::Base

你得到了所有的 rake 任务,但是你必须做一些额外的配置,因为你没有 Rails。这是 activerecord 内部的链接,了解如何配置这些东西。

Database tasks

【讨论】:

  • 谢谢!这就是我到目前为止所拥有的。我的问题是让所有rake 任务在我的 gem 中管理数据库。
  • 这是一个相关的 github 问题,讨论您的用例,并附有示例代码。 github.com/rails/rails/issues/11609
【解决方案2】:

更新的解决方案是standalone_migrations。基本上在完成 gem 配置并创建配置之后,您可以访问所有 ActiveRecord 细节。包括耙任务!

此外,我还制作了一个小型生成器,用于构建可以直接访问 ActiveRecord 的简单脚本:nrb - Ninja Ruby

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多