Tôi đang sử dụng Sinatra và tôi muốn thiết lập một số nhiệm vụ cào tiện lợi mà Rails có, cụ thể là rake db:seed
.Làm cách nào để tạo các tác vụ Rake chạy dưới ứng dụng/môi trường Sinantra của tôi?
vượt qua đầu tiên của tôi là thế này:
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
là một viên ngọc bắt chước Rails' console. Vì vậy, tôi đã cho ăn mã trong tệp hạt giống trực tiếp vào nó. Nó hoạt động, nhưng rõ ràng là không lý tưởng. Điều tôi muốn làm là tạo một tác vụ môi trường cho phép các lệnh chạy dưới ứng dụng/môi trường Sinanta, như vậy:
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
Nhưng điều tôi không thể hiểu là cách thiết lập môi trường do đó, các công việc cào có thể chạy dưới nó. Bất kì sự trợ giúp nào đều được đánh giá cao.