gpt4 book ai didi

ruby-on-rails - 执行数据库 :test:prepare from another rake task

转载 作者:行者123 更新时间:2023-12-04 12:55:48 24 4
gpt4 key购买 nike

我正在尝试执行 rake db:test:prepare从另一个任务。

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

使用 invoke 而不是 execute 没有帮助。如果我自己定义它,它似乎工作正常:
task example: :environment do
Rake::Task['db:test:prepare'].execute
end

当我跑 rake db:populate:development , 除 Rake::Task['db:test:prepare'].execute 外的所有任务都运行.该命令的开发日志中没有事件,但它不会阻止下一个任务运行(启动服务器)。通常,我在运行 db:test:prepare 时会看到一些 SQL 语句。通过它自己。

笔记:
$ 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

最佳答案

我知道这不是正确的做法,但我遇到了类似的问题并最终使用以下方法调用它:

`rake db:test:prepare`

这是唯一对我有用的方法。

关于ruby-on-rails - 执行数据库 :test:prepare from another rake task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com