加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – rake文件中的未定义方法

发布时间:2020-12-17 02:25:35 所属栏目:百科 来源:网络整理
导读:我收到错误 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') endend sym
我收到错误

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扩展提供. Capfile:

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'

确保你已经正确安装了gems 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

这就是我使用的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读