【问题标题】:Rails-style Rake Tasks for Sinatra (Ruby)用于 Sinatra (Ruby) 的 Rails 风格的 Rake 任务
【发布时间】:2012-06-23 05:26:52
【问题描述】:

我似乎找不到任何人在 Sinatra 应用程序中使用 Rails 风格的 rake 任务的 gem 或示例。我想清理我的迁移文件夹,并希望执行类似此处解释的操作:When (if) to consolidate ActiveRecord migrations?

【问题讨论】:

  • 我发现了一个非常好的 Rakefile 项目:github.com/raecoo/sinatra-template 仍然想知道我是否必须如此努力地挖掘是因为没有人需要这些任务,或者 Sinatra 只是没有以下这些东西就像 Rails 一样。
  • 不清楚您所说的“Rails 风格”rake 任务是什么意思。 Rake 不仅仅是 rails-only - 你可以在任何项目中使用它。你具体想做什么任务?不过,您可能需要自己编写它们。
  • 嗯,对我来说,我想要的主要是rake db:schema:dump(我现在有)。我猜“风格”是错误的词:)

标签: ruby-on-rails ruby rake sinatra


【解决方案1】:

为什么 Sinatra 不能“开箱即用”地做你想做的事情

Sinatra 不像 Ruby on Rails 那样是一个多层框架。具体来说,虽然您当然可以向 Sinatra 应用程序添加数据库层,但它不支持“开箱即用”的 ActiveRecord 或 Rails 迁移。

如果您正在寻找标准的 Rails rake 任务和迁移支持,为什么不直接使用 Rails? Sinatra 很棒,但它不是 Rails 的替代品。

所以您想要以数据库为中心的 Rake 任务...

如果您的数据库连接来自 gem,请查看 gem 的项目是否具有 Rakefile,您可以将其重新用于您的应用程序。例如,sinatra-activerecord gem 提供了将相关 Rake 任务添加到 Rakefile 的说明。

如果您推出了自己的数据库连接,那么您可能还必须推出自己的 Rake 任务。 documentation for Rake 很广泛,其功能应该允许您自动执行所需的任务。

【讨论】:

  • 我确实找到了一些样本并将一些任务添加到我的 Rakefile 中。 ActiveRecord 助手不应该是有人选择 Rails 而不是 Sinatra 的原因,我想我们都知道这一点。感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 2017-06-21
  • 2015-11-18
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 2013-09-14
相关资源
最近更新 更多