发生在几个应用程序中,因为Rails 4.x ..这里有一些版本:
这真的很烦人,特别是因为零停机时间部署再也没有了,记住 - 我根本不工作
models / user
class User < ActiveRecord::Base
..
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable,
:validatable, :confirmable, :lockable, :timeoutable, :omniauthable, :invitable,
:omniauth_providers => CONFIG[:devise_provider]
..
end
initializers / devise
Devise.setup do |config|
config.secret_key = 'xxx-key-xxx'
config.mailer_sender = CONFIG[:mail_system]
config.mailer = 'AccountMailer'
require 'devise/orm/active_record'
config.case_insensitive_keys = [:email]
config.strip_whitespace_keys = [:email]
config.skip_session_storage = [:http_auth]
config.stretches = Rails.env.test? ? 1 : 10
config.invite_for = 0
config.reconfirmable = true
config.expire_all_remember_me_on_sign_out = true
config.password_length = CONFIG[:password_min_length]..CONFIG[:password_max_length]
config.timeout_in = 6.hours
config.reset_password_within = 6.hours
config.sign_out_via = :delete
config.omniauth :facebook, CONFIG[:facebook_id], CONFIG[:facebook_secret], {info_fields: 'email, first_name, last_name, gender', image_size: "large"}
config.omniauth :google_oauth2, CONFIG[:google_id], CONFIG[:google_secret], {
skip_jwt: true,
scope: "email, profile, plus.me",
# prompt: "select_account",
image_aspect_ratio: "square",
image_size: 200
}
end
大多数应用程序都在生产中运行,因此我在部署时不会触摸数据库(迁移除外)。 在没有devise_invitable的应用程序中也会发生这种情况,因此这也不会导致它。
..感谢您的帮助! ..
也发布为devise #4277
答案 0 :(得分:1)
问题是由我唯一没有提到的问题引起的:rvm
或更好rvm1-capistrano3
完全忽略了~/.bachrc
,~/.profile
等等。
我必须将secret_key_base
放入/etc/environment
,现在它按预期工作。
直到现在secret_key_base
对我来说只是一个巨大的痛苦,因为所有记录的用法都没有用,我必须将secret_key_base放在:default_env
中并注入它在一些monit脚本中。即:重新启动sidekiq
或thin
(因此它在deploy.rb
中被硬编码)
感谢surendar,他answer capistrano 3 + rvm1-capistrano3 rails 4.1 secrets.yml environmental variables issue就是解决方案。
它似乎仍然不是最好的解决方案(但它有效),所以我会保持开放以获得更好的解决方案。