Tag: rake

Rake与我的数据库不同步

我inheritance了一个Ruby on Rails项目,程序员没有使用rake来创建db模式,所以看起来非常不同步,有没有办法纠正这个问题?

与Cron工作一起耙任务

我正在尝试设置cron作业来每天运行一个rake任务。 我目前有以下cron工作(请注意,时间全是*因为我希望它在测试时每分钟运行一次) * * * * * cd /home/jon/thestockenator/lib/tasks/ && ./get_current_data.sh 在shell脚本中,我将整个PATH添加到cron运行它时的路径,并调用rake test_task。 我设置了一个基本的rake任务,只输出一些文本(因为我的真实需要一段时间才能运行) task :test_task do puts “this is a rake task” end 在cron作业中运行时,cron作业肯定会运行并且which rake工作。

运行rake db:在没有一些初始化器的情况下迁移

我正在尝试运行jruby -S rake db:migrate ,但是每当我进行迁移时,我都不想在config/initializers启动守护进程。 有没有办法做到这一点? 到目前为止,我刚刚将守护进程文件移动到扩展名为.bak的文件,以便在我进行迁移时rails不会加载它。 我怀疑这是一种愚蠢的做事方式。 有没有更好的办法? 哦,我正在跑步(如果重要的话)。

从父rake调用多个任务是否为每个任务加载环境

如果我有一个耙子调用多个其他耙子。 一旦我发起父母耙 rake myapp:main 然后在rake中调用完成将为每个任务加载环境,或者在运行rake myapp:main时只执行一次活动? namespace :myapp do desc “Main Run” task :main => :environment do Rake::Task[‘myapp:task1’].invoke Rake::Task[‘myapp:task2’].invoke end task :task1 => :environment do # Does the first task end task :task2 => :environment do # Does the second task end end

如何在自定义capistrano任务中使用事务?

我正在编写一个自定义的capistrano任务来缩小我的javascripts,并希望通过回滚部署来处理缩小失败的情况。 我一直在阅读文档,并认为我已经想出如何做到这一点,但它不适合我。 这就是我所拥有的: desc ‘Minify all javascript files’ task :bundle, :roles => :app, :except => { :no_release => true } do on_rollback do run “rm #{current_path}/public/javascripts/all.js” puts “ROLLBACK” end transaction do run “cd #{current_path}; RAILS_ROOT=#{current_path} rake bundle:js” end end after ‘deploy:update’, ‘deploy:bundle’ 当我运行cap staging deploy:bundle并将其设置为失败时,我得到以下输出: triggering start callbacks for `staging’ * executing `staging’ triggering start […]

无法推送到Heroku(找不到Rake 10.3.2)

这里有新手。 我正在使用Ubuntu 14.04虚拟机上的railstutorial.org上的教程。 在我到达heroku之前,它一直很顺利。 当我想将我的应用程序推送到heroku时,它抱怨它无法找到rake-10.3.2。 我检查了heroku,应用程序似乎是空的。 但是,我的应用程序中有rake-10.3.2,如果使用“bundle show rake”,它会显示正确的版本。 brandon@brandon-virtualbox:~/rails_projects/first_app$ bundle show rake /home/brandon/.rvm/gems/ruby-2.0.0-p481@railstutorial_rails_4_0/gems/rake-10.3.2 看起来没问题,但当我尝试将其推送到heroku时,我得到: brandon@brandon-virtualbox:~/rails_projects/first_app$ git push heroku master Initializing repository, done. Counting objects: 66, done. Compressing objects: 100% (55/55), done. Writing objects: 100% (66/66), 14.46 KiB | 0 bytes/s, done. Total 66 (delta 6), reused 0 (delta 0) —–> Ruby app detected —–> […]

DB的自定义rake任务:找不到表

我有一个自定义rake任务,它创建一个包含各种情况数据的开发DB。 核心看起来像这样: namespace :db do task setup_seed: :environment do Rake::Task[‘db:drop’].invoke Rake::Task[‘db:create’].invoke Rake::Task[‘db:schema:load’].invoke Rake::Task[‘db:migrate’].invoke Rake::Task[‘db:test:prepare’].invoke Rake::Task[‘db:seed’].invoke end end 一切运行正常,直到db:seed被调用,因为它抛出了表不存在的错误。 这是我的seed.rb : puts Rails.env # => development puts Article.count # rake aborted! # Mysql2::Error: Table ‘app_test.articles’ doesn’t exist: SHOW FULL FIELDS FROM `articles` # /usr/src/app/db/seeds.rb:2:in `’ # /usr/src/app/Rakefile:16:in `block (2 levels) in ‘ # Tasks: TOP => […]

在延迟工作中运行叉子

我们在Web应用程序中使用延迟作业,我们需要并行发生多个延迟作业的工作,但我们不知道需要多少工作。 解决方案我目前正在尝试运行一个worker并在所需任务中调用fork / Process.detach。 我之前试图直接在rails应用程序中运行fork,但它对乘客来说效果不好。 这个解决方案似乎运作良好。 生产中可能有任何警告吗?

为什么我的rake调用导致’未定义的方法`source_index`’错误?

我试图运行bundle exec rake db:migrate然后遇到以下错误。 bundle exec rake db:migrate –trace ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment rake aborted! undefined method `source_index’ for Gem:Module C:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.17/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.17/lib/initializer.rb:298:in `add_gem_load_paths’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.17/lib/initializer.rb:132:in `process’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.17/lib/initializer.rb:113:in `run’ C:/Program Files/chiliproject-3.7.0/config/environment.rb:42:in `’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-2.3.17/lib/active_support/dependencies.rb:182:in `require’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-2.3.17/lib/active_support/dependencies.rb:182:in `block in require’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-2.3.17/lib/active_support/dependencies.rb:547:in `new_constants_in’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-2.3.17/lib/active_support/dependencies.rb:182:in `require’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.17/lib/tasks/misc.rake:4:in `block in ‘ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:228:in `call’ C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:228:in […]

使用rake任务重置数据库

我想每天使用Heroku的调度程序重置一次数据库。 建议对调度程序使用rake任务。 这就是我尝试过的: task :reset_database => :environment do `heroku pg:reset MY_DB:URL` `heroku run rake db:migrate db:seed` # some other ruby commands end 但是我怎么能正确地做到这一点,因为将heroku命令放在反引号中,而bash 正常工作 ,这在这里不起作用: No such file or directory – heroku