【问题标题】:Rails 3.1 to 3.2.6 upgrade - asset_sync errorRails 3.1 到 3.2.6 升级-asset_sync 错误
【发布时间】:2012-06-19 13:13:51
【问题描述】:

在将 Heroku 应用程序的 rails 3.1 升级到 3.2.6 方面取得了很大进展。

我使用asset_sync 并将资产预编译到S3 上。我使用asset_sync.rb 初始化程序来配置我的S3 连接详细信息。

尝试运行时出错

RAILS_ENV=production bundle exec rake assets:precompile

AssetSync: using /Users/bob/work/myapp/config/initializers/asset_sync.rb
rake aborted!
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Tasks: TOP => environment
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [/Users/bob/.rvm/rubies/ruby-1.9.3-p...]

这很奇怪。我检查了它正在按照Postgres permission denied on MAC OS X那个问题和相关的cmets收听。

【问题讨论】:

  • rake 命令,例如 rake db:reset 工作正常。除非我指定 psql -h localhost postgres postgres ,否则在命令行中键入 psql 会给出完全相同的错误 - 尝试做什么? asset_sync.rb 包含我的 Amazon S3 凭证 - 为什么会出现此错误?完整的堆栈跟踪意味着它的活动记录 3.2.6:
  • 耙子中止!无法连接到服务器:权限被拒绝服务器是否在本地运行并接受 Unix 域套接字“/var/pgsql_socket/.s.PGSQL.5432”上的连接? /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in initialize' /Users/bob/.rvm/gems/ruby-1.9.3-p0@rails32/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in new' ...
  • 如果我将 host: localhost 从 database.yml 中取出,我会在 Rails 控制台等命令上得到相同的错误。一旦进入,尽管这些命令可以正常工作,但资产预编译仍然会因上述原因而失败。

标签: ruby-on-rails heroku amazon-s3 assets


【解决方案1】:

这不是asset_sync 的错误,而是资产预编译过程本身(特别是在heroku 上)在您的生产或应用程序中尝试config.assets.initialize_on_precompile = false。rb

这将确保您的应用程序代码不会被不必要地初始化,这在预编译时,您的 heroku 数据库可能不可用。

我相信 Rails 3.2.6 和 3.2.x 都不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多