Wie kann ich Rake-Aufgaben unter meiner Sinantra-App / -Umgebung ausführen lassen?
Ich verwende Sinatra und wollte einige der praktischen Rake-Aufgaben einrichten, die Rails hat, insbesondererake db:seed
.
Mein erster Durchgang war dieser:
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
ist ein Juwel, das die Rails-Konsole imitiert. Also habe ich nur den Code in der Seed-Datei direkt eingegeben. Es funktioniert, aber es ist offensichtlich nicht ideal. Ich möchte eine Umgebungstask erstellen, mit der Befehle unter der Sinanta-App / -Umgebung ausgeführt werden können. Beispiel:
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
Aber ich kann nicht herausfinden, wie die Umgebung eingerichtet wird, damit die Rake-Tasks unter ihr ausgeführt werden können. Jede Hilfe wäre sehr dankbar.