我正在将我的rails应用程序部署到linux服务器,并且我有一些rake任务没有包含rake gems:install和rake db
我正在从GEM运行rails 2.3.4。
为什么会这样?
我该如何解决这个问题?我能以某种方式更新吗?
rake -T list
中缺少它们rake apache2 # Build Apache 2 module
rake clean # Remove compiled files
rake clobber # Remove all generated files
rake default # Build everything
rake doc # Generate all documentation
rake doxygen # Generate Doxygen C++ API documentation if ...
rake doxygen:clobber # Remove generated Doxygen C++ API documenta...
rake doxygen:force # Force generation of Doxygen C++ API docume...
rake fakeroot # Create a fakeroot, useful for building nat...
rake nginx # Build Nginx helper server
rake package # Build all the packages
rake package:clean # Remove package products
rake package:debian # Create a Debian package
rake package:force # Force a rebuild of the package files
rake package:gem # Build the gem file passenger-2.2.4.gem
rake rdoc # Build the rdoc HTML Files
rake rdoc:clobber # Remove rdoc products
rake rdoc:force # Force a rebuild of the RDOC files
rake sloccount # Run 'sloccount' to see how much code Passe...
rake test # Run all unit tests and integration tests
rake test:cxx # Run unit tests for the Apache 2 and Nginx ...
rake test:integration # Run all integration tests
rake test:integration:apache2 # Run Apache 2 integration tests
rake test:integration:nginx # Run Nginx integration tests
rake test:oxt # Run unit tests for the OXT library
rake test:rcov # Run coverage tests for the Ruby libraries
rake test:restart # Run the 'restart' integration test infinit...
rake test:ruby # Run unit tests for the Ruby libraries
我的rake文件包含:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
如何添加gems和db rake任务?他们为什么失踪?
答案 0 :(得分:6)
rake -T
的输出是什么?这应该列出所有可用的任务。在RoR应用程序中,Rakefile
定义了您的任务。
您可以使用gem update
更新宝石。
答案 1 :(得分:4)
检查你的Capfile,如果你实际上在运行gems:从Capistrano安装。显然,执行此操作的方法是确保在运行Capistrano时内部位于正确的目录中。
namespace :gems do
desc "Install gems"
task :install, :roles => :app do
run "cd #{current_path} && #{sudo} rake RAILS_ENV=production gems:install"
end
end
您也可以始终使用rake命令前面的-f [FILE]选项指定Rakefile。
答案 2 :(得分:0)
您可以尝试更新Rails安装,或通过传递--force
标志完全重新安装rails。你有这个命令有效的其他项目吗?检查这些项目中的rake文件。看起来你的rakefile和我的相同......这个项目最初是基于较旧版本的rails吗?你在运行什么Gem版本?您可能需要执行gem update --system
。所有这些都是可能的。
答案 3 :(得分:0)
我想你总是可以重新创建你的项目。令人讨厌,但似乎总是帮助最坏的情况。
至少可以让你了解它是否是项目或某种依赖性问题。
答案 4 :(得分:0)
如果您使用的是rails应用程序,还可以在lib / tasks / SOME_TASK.rake中定义rake任务
如果你定义了SOME_TASK,那么当你运行rake -T并且它是一个可用的命令时它会出现。