rake 文件中未定义的方法
Undefined method in rake file
我收到错误
NoMethodError: undefined method `symfony_console'
我在 rake 文件中定义的任务 (lib/capistrano/tasks/my_tasks.rake)
task :migrate do
on roles(:all) do
symfony_console('doctrine:migrations:migrate', '--no-interaction')
end
end
symfony_console 方法由 capistrano/symfony 扩展提供。顶文件:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
我做错了什么?
更新:
问题可能与角色有关?
如果您提供了整个 Capfile,您将缺少 capistrano/symfony
。
改成这样:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
确保你已经正确安装了 gem capistrano
并且
capistrano-symfony
,否则遵循this step.
我从未使用过此功能 (symfony_console(...)
),但它应该可以使用。
编辑
您应该在 deploy.rb
中写下您的任务。
EDIT2
如果您还没有,请尝试为您的任务设置命名空间,如下所示:
namespace :deploy do
before 'updated', 'schemadb'
task :migrate do
on roles(:all) do
symfony_console('doctrine:migrations:migrate', '--no-interaction')
end
end
end
如果不行,尝试将任务正文改为:
on roles(:all) do
invoke 'symfony:console', 'doctrine:migrations:migrate', '--no-interaction'
end
这是我用的
问题是由于旧版本 capistrano/symfony
与 capistrano-symfony 版本 1.0.0.rc3 有同样的问题。看起来 https://github.com/capistrano/symfony/blob/master/lib/capistrano/dsl/symfony.rb
不是 imported/used。
我绝对不是 Ruby 专家,但我很好奇如何调试它...
我收到错误
NoMethodError: undefined method `symfony_console'
我在 rake 文件中定义的任务 (lib/capistrano/tasks/my_tasks.rake)
task :migrate do
on roles(:all) do
symfony_console('doctrine:migrations:migrate', '--no-interaction')
end
end
symfony_console 方法由 capistrano/symfony 扩展提供。顶文件:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
我做错了什么?
更新: 问题可能与角色有关?
如果您提供了整个 Capfile,您将缺少 capistrano/symfony
。
改成这样:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
确保你已经正确安装了 gem capistrano
并且
capistrano-symfony
,否则遵循this step.
我从未使用过此功能 (symfony_console(...)
),但它应该可以使用。
编辑
您应该在 deploy.rb
中写下您的任务。
EDIT2
如果您还没有,请尝试为您的任务设置命名空间,如下所示:
namespace :deploy do
before 'updated', 'schemadb'
task :migrate do
on roles(:all) do
symfony_console('doctrine:migrations:migrate', '--no-interaction')
end
end
end
如果不行,尝试将任务正文改为:
on roles(:all) do
invoke 'symfony:console', 'doctrine:migrations:migrate', '--no-interaction'
end
这是我用的
问题是由于旧版本 capistrano/symfony
与 capistrano-symfony 版本 1.0.0.rc3 有同样的问题。看起来 https://github.com/capistrano/symfony/blob/master/lib/capistrano/dsl/symfony.rb
不是 imported/used。
我绝对不是 Ruby 专家,但我很好奇如何调试它...