我收到错误
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
capistrano / symfony 扩展程序提供的symfony_console 方法。 Capfile:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
我做错了什么?
更新 问题可能与角色有关吗?
答案 0 :(得分:2)
如果你给出了整个Capfile,那么你就错过了capistrano/symfony
。
像这样改变:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/symfony'
确保您已正确安装了宝石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
这就是我使用的。
答案 1 :(得分:1)
问题是由于旧版本的capistrano / symfony
答案 2 :(得分:0)
与capistrano-symfony版本1.0.0.rc3有同样的问题。 1}}似乎未导入/使用。
我绝对不是Ruby专家,但我很好奇如何调试这个...