基于机架的应用程序和ActiveRecord

时间:2012-08-27 15:02:54

标签: ruby database activerecord rack

我在网上找不到答案,所以我来了!如果您在基于机架的应用程序(Sinatra,Merb,Camping ...)中使用activerecord gem,您是否可以自动访问rake命令,例如rake db:migrate?或者你还需要做些什么?

我发现了sinatra-activerecord gem,可以访问该命令,但其他框架呢?

1 个答案:

答案 0 :(得分:2)

rackrake确实是不同的宝石,但是,许多开发人员使用rack自动执行基于rake的应用中的某些任务。也就是说,有人通常必须编写任务才能使db:migrate起作用。

以下是db:migrate真正构成的内容:

require 'bundler/setup'
require 'active_record'
require 'logger'

namespace :db do
  desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
  task :migrate => :environment do
    ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
  end

  task :environment do
    ActiveRecord::Base.logger = Logger.new(STDOUT)
    require_relative './config/db'
  end
end

来源:https://gist.github.com/2624944