12

我正在构建基于六角形体系结构的Rails应用程序。如何在Rails之外使用ActiveRecord?

我的一个适配器是管理对数据库的访问,并提供简单的界面,Rails应用程序存储和查询数据在数据库中存储适配器(保持为宝石)。

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

如何使用AR以外的AR,但是所有RAKE任务?

+1

的可能的复制[如何在外面的Rails的Ruby脚本使用ActiveRecord?](http://stackoverflow.com/questions/1643875/how-to-use-activerecord-in-a-ruby-script-outside-导轨) – Mogsdad

+0

如果你想要的东西可行。这是一个例子。运行软件包安装并迁移您的数据库。你做完了。 README获取更多信息。 https://github.com/slindsey3000/ContactManager – slindsey3000

回答

18

像任何其他宝石

gem install activerecord 

然后再进行安装配置它的地方像这样

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

模型则可以从ActiveRecord的继承正常:: Base的

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

Database tasks

+0

谢谢!这就是我迄今为止所做的。我的问题是在我的宝石中也有用于管理数据库的所有'rake'任务。 – squixy

+0

这里有一个相关的问题GitHub的讨论你的使用情况,与示例代码。 https://github.com/rails/rails/issues/11609 –

2

一个更新的解决方案是standalone_migrations。这样的配置对于创业板和创建配置后基本上,你可以访问所有ActiveRecord的细微。包括Rake任务!

而且,我做了一个小型发电机脚手架即有机会获得ActiveRecord的开箱即用简单的脚本:nrb - Ninja Ruby

相关问题