从 Rails 4 升级到 6:未初始化常量 ActiveRecord::ConnectionAdapters::SchemaCache
Upgraded from Rails 4 to 6: uninitialized constant ActiveRecord::ConnectionAdapters::SchemaCache
我将一个相当旧的应用程序从 rails 4.2 升级到 6.1.3.1。该应用程序在本地运行良好,但是当我尝试使用 capistrano 将其部署到我的服务器时,出现以下错误。它指出
NameError: uninitialized constant ActiveRecord::ConnectionAdapters::SchemaCache
** Did you mean? ActiveRecord::Schema
当 运行 bundle exec rake assets:precompile 通过 capistrano 或在服务器上手动执行时,会发生这种情况。我试过在 application.rb 中设置一些标志,例如:
config.assets.initialize_on_precompile = false
但这并没有解决问题。我觉得我已经用尽了我的知识和搜索技巧。有人可以帮我指出正确的方向吗?
* executing "cd -- /home/user/app_rails6/releases/20210419123208 && RAILS_ENV=staging RAILS_GROUPS=assets bundle exec rake assets:precompile"
* executing command
** rake aborted!
** NameError: uninitialized constant ActiveRecord::ConnectionAdapters::SchemaCache
** Did you mean? ActiveRecord::Schema
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activerecord-6.1.3.1/lib/active_record/railtie.rb:139:in `block (3 levels) in <class:Railtie>'
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:71:in `class_eval'
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:71:in `block in execute_hook'
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
------trace truncated by author------
更新:
更新:当我使用一个使用sqlite作为数据库的环境时,命令运行正常。当我使用使用 postgres 作为数据库的环境时,出现错误。
原来 Rails 中存在错误,现在已在 6.1.3.1(6-1-稳定分支)上修复。
我仍然遇到一个稍微不同的错误,但这个错误已经解决了。
我将一个相当旧的应用程序从 rails 4.2 升级到 6.1.3.1。该应用程序在本地运行良好,但是当我尝试使用 capistrano 将其部署到我的服务器时,出现以下错误。它指出
NameError: uninitialized constant ActiveRecord::ConnectionAdapters::SchemaCache
** Did you mean? ActiveRecord::Schema
当 运行 bundle exec rake assets:precompile 通过 capistrano 或在服务器上手动执行时,会发生这种情况。我试过在 application.rb 中设置一些标志,例如:
config.assets.initialize_on_precompile = false
但这并没有解决问题。我觉得我已经用尽了我的知识和搜索技巧。有人可以帮我指出正确的方向吗?
* executing "cd -- /home/user/app_rails6/releases/20210419123208 && RAILS_ENV=staging RAILS_GROUPS=assets bundle exec rake assets:precompile"
* executing command
** rake aborted!
** NameError: uninitialized constant ActiveRecord::ConnectionAdapters::SchemaCache
** Did you mean? ActiveRecord::Schema
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activerecord-6.1.3.1/lib/active_record/railtie.rb:139:in `block (3 levels) in <class:Railtie>'
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:71:in `class_eval'
**
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:71:in `block in execute_hook'
** /home/user/app_rails6/shared/bundle/ruby/2.6.0/gems/activesupport-6.1.3.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
------trace truncated by author------
更新:
更新:当我使用一个使用sqlite作为数据库的环境时,命令运行正常。当我使用使用 postgres 作为数据库的环境时,出现错误。
原来 Rails 中存在错误,现在已在 6.1.3.1(6-1-稳定分支)上修复。
我仍然遇到一个稍微不同的错误,但这个错误已经解决了。