Ruby on rails 如何使Rake任务在我的Sinantra应用程序/环境下运行?

Ruby on rails 如何使Rake任务在我的Sinantra应用程序/环境下运行?,ruby-on-rails,ruby,rake,sinatra,Ruby On Rails,Ruby,Rake,Sinatra,我使用的是Sinatra,我想设置一些Rails提供的方便的rake任务,特别是rake db:seed 我的第一个通行证是: namespace :db do desc 'Load the seed data from db/seeds.rb' task :seed do seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb') system("racksh < #{seed_file}")

我使用的是Sinatra,我想设置一些Rails提供的方便的rake任务,特别是
rake db:seed

我的第一个通行证是:

namespace :db do
  desc 'Load the seed data from db/seeds.rb'
  task :seed do
    seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
    system("racksh < #{seed_file}")
  end
end

但我不知道如何设置环境,以便rake任务可以在其下运行。非常感谢您的帮助。

我已经为Sinatra建立了一个类似Rails的环境:

task :environment do
  require File.expand_path(File.join(*%w[ config environment ]), File.dirname(__FILE__))
end
然后,在
config/environment.rb
中有一些内容,包含正确启动应用程序所需的内容。可能是这样的:

require "rubygems"
require "bundler"
Bundler.setup

require 'sinatra'
将此设置放在单独的文件中可避免弄乱您的
Rakefile
,并可用于通过
config.ru
启动您的Sinatra应用程序,如果您使用该文件:

require File.expand_path(File.join(*%w[ config environment ]), File.dirname(__FILE__))

run Sinatra::Application
require File.expand_path(File.join(*%w[ config environment ]), File.dirname(__FILE__))

run Sinatra::Application