【问题标题】:Undefined method in rake filerake 文件中未定义的方法
【发布时间】:2016-03-11 08:59:16
【问题描述】:

我得到错误

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'

我做错了什么?

更新: 问题可能与角色有关?

【问题讨论】:

    标签: ruby symfony capistrano capistrano3


    【解决方案1】:

    如果你给出了整个 Capfile,你就错过了capistrano/symfony

    改成这样:

    require 'capistrano/setup'
    require 'capistrano/deploy'
    require 'capistrano/composer'
    require 'capistrano/symfony'
    

    确保您已正确安装 gems capistranocapistrano-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
    

    这是我用的。

    【讨论】:

    • 您是否尝试将任务从您的my_tasks.rake 直接移动到您的deploy.rb 中?
    • 还没有。此外,当前配置在本地工作,并且在部署服务器上失败。现在我想到了角色,你能评论一下吗?谢谢。
    • 我不明白角色是如何导致这种情况的。此外,on roles(':all') 对我来说效果很好,但对于在我的 deploy. rb 作为deploy 命名空间的一部分定义的任务。看看我上次的编辑,也许添加命名空间可以解决它。否则,最后一个解决方案(避免symfony_console())应该可以解决问题。
    【解决方案2】:

    问题是由于 capistrano/symfony 的旧版本引起的

    【讨论】:

    • 你能解释一下你是如何更新capistrano/symfony的吗?
    【解决方案3】:

    capistrano-symfony 版本 1.0.0.rc3 也有同样的问题。看起来https://github.com/capistrano/symfony/blob/master/lib/capistrano/dsl/symfony.rb 没有被导入/使用。

    我绝对不是 Ruby 专家,但我很好奇如何调试这个...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多