Tôi đang cố gắng thực hiện rake db:test:prepare
từ một tác vụ khác.Thực thi db: test: chuẩn bị từ một nhiệm vụ rake khác
namespace :db do
namespace :populate do
desc "Seed development database"
task development: :environment do
puts "Kill local server"
%x{ ps xauwww | grep -i --regex="[t]hin" | awk '{print $2}' | xargs kill }
puts "Resetting development database"
Rake::Task['db:reset'].execute
puts "Migrating development database"
Rake::Task['db:migrate'].execute
puts "Populating development database"
Rake::Task['db:populate'].execute
puts "Pepare test database"
Rake::Task['db:test:prepare'].execute
puts "Start local server"
system 'thin -d start'
end
…
end
Sử dụng lời gọi thay vì thực thi sẽ không hữu ích. Có vẻ như để làm việc tốt nếu tôi xác định nó bằng cách riêng của mình:
task example: :environment do
Rake::Task['db:test:prepare'].execute
end
Khi tôi chạy rake db:populate:development
, tất cả các nhiệm vụ được chạy trừ Rake::Task['db:test:prepare'].execute
. Không có hoạt động nào trong nhật ký phát triển cho lệnh đó, nhưng nó không ngăn tác vụ tiếp theo chạy (khởi động máy chủ). Thông thường, tôi thấy một số câu lệnh SQL khi tôi tự chạy db:test:prepare
.
Ghi chú:
$ rails -v
Rails 3.2.2
$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
$ uname -a
Darwin hook 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
Tôi có cùng một vấn đề và điều này không giải quyết được cho tôi. – jrdioko