【问题标题】:Heroku not running migrations due to ruby module由于 ruby​​ 模块,Heroku 没有运行迁移
【发布时间】:2023-03-21 16:57:02
【问题描述】:

我无法在 Heroku 中运行迁移,我认为这是因为我在 lib 目录中创建了一个模块。执行命令heroku run rake db:migrate 后,我收到以下错误:

uninitialized constant ApplicationController::PgTools /app/app/controllers/application_controller.rb:4:in <class:ApplicationController>

Application 控制器的第 4 行是 include PgTools,用于访问我创建的 PgTools 模块中的方法。

尽管 heroku 迁移失败,但我可以在本地开发环境中运行 rake db:migrate 而不会失败(请注意,两个环境都使用 postgres 数据库)。

我的 application.rb 文件中也有以下两行

config.autoload_paths += %W(#{config.root}/lib)

config.autoload_paths += Dir["#{config.root}/lib/**/"]

【问题讨论】:

  • 你可能需要在你的 heroku 实例上gem install pgtools
  • 似乎pgtools文件没有部署到heroku..是不是在部署之前添加了文件提交?
  • 不走运。重新运行bundle install,仍然收到同样的错误。
  • @tihom 是的,我在部署之前做了一个新的提交
  • 只是检查,因为我有时忘记运行 git add . 需要添加新添加的文件

标签: ruby-on-rails ruby heroku ruby-on-rails-3.2


【解决方案1】:

我通过将Pg_Tools.rb 重命名为pgtools.rb 并将所有include PgTools 语句修改为include Pgtools 来解决该错误

我在故障排除过程中使用的链接如下所示

Rails 3 library not loading until require

http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 2016-02-02
    • 2012-02-05
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    相关资源
    最近更新 更多