簡體   English   中英

每當用戶暗示為應用程序名稱時,Rails

[英]Rails whenever user implied as application name

whenever gem 失敗時,在 Ubuntu 20 服務器上生成的 cronjob,作為日志注冊:

PG::ConnectionBad: FATAL:  Peer authentication failed for user "*name_of_application*"

database.yml 文件定義了

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default

應用程序按預期處理所有遷移、記錄創建、更新等,因此與 PG 的連接是正確的。 但是,似乎每當 gem 想要以用戶name_of_application連接時

按照文檔和內聯幫助,我跑了

bundle exec whenever --user *name_of_linux_user*

無濟於事。

schedule.rb如下:

env :PATH, ENV['PATH']
 
job_type :rbenv_rake, %Q{export PATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/bin:$PATH; eval "$(rbenv init -)"; \
                         cd :path && :environment_variable=:environment :bundle_command rake :task --silent :output }

job_type :rbenv_runner, %Q{export PATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/bin:$PATH; eval "$(rbenv init -)"; \
                         cd :path && :bundle_command :runner_command -e :environment ':task' :output }


  every 1.day, :at => '00:22 am' do
    rake "cleanup:promos", :output => "log/sweep_log.log"
  end

為什么whenever默認為應用程序的名稱,應該如何更正?

每當 gem 假定應用程序在生產模式下運行,從而呈現給 crontab

cd /home/deploy/app_name/releases/20211025093952  && RAILS_ENV=production

該數據庫尚未創建,從而導致用戶連接錯誤。

 && RAILS_ENV=development

解決了這個用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM