Я использую Sinatra, и я хотел бы настроить некоторые из удобных задач rake, которые Rails имеет, в частности 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
racksh
- это жемчужина, имитирующая консоль Rails. Поэтому я просто загружал код в файл семени прямо в него. Он работает, но он явно не идеален. То, что я хотел бы сделать, - создать задачу среды, которая позволяет командам запускаться в приложении/среде Sinanta, например:
task :environment do
# what goes here?
end
task :seed => :environment do
seed_file = File.join(File.dirname(__FILE__), 'db', 'seeds.rb')
load(seed_file) if File.exist?(seed_file)
end
Но я не могу понять, как настроить среду, чтобы задачи rake могли работать под ней. Любая помощь будет высоко оценена.