我有个奇怪的问题。我使用Capistrano部署我的应用程序(使用pagespeed、nginx、unicorn)。奇怪的是,我的应用程序在服务器上的生产数据库上运行(是正确的),但Capistrano进行了所有迁移到服务器上的开发数据库(有2个数据库,因为我知道应该只有生产数据库,所有的操作都应该与它一起)……我不明白为什么..。
我不明白..。为什么它试图在我的服务器上创建一个开发数据库?Foreignernetwork_production错误: FATAL:数据库"foreignernetwork_development“不存在(在我手动创建它之前,但现在我看到是我的问题,我试图找出如何使它成为foreignernetwork_production)……你能告诉我什么可能是原因吗?
我的文件:
deploy.rb
set :application, "[FILTERED]"
set :log_level, :info
set :scm, :git
# important! https, not ssh
set :repo_url, "https://github.com/myname/[FILTERED].git"
set :deploy_to, "/var/www/[FILTERED]"
set :user, "deployuser"
set :keep_releases, 5
set :ssh_options, {
forward_agent: true,
# important! your current ssh port
port: 12531
}
set :rbenv_type, :system
#important! change to your current version
set :rbenv_ruby, '2.2.2'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)}
RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all
#set :rbenv_custom_path, '/usr/local/rbenv/bin/rbenv'
#set :use_sudo, true
SSHKit.config.command_map[:rake] = "bundle exec rake"
SSHKit.config.command_map[:rails] = "bundle exec rails"
set :linked_files, %w{.env}
set :linked_dirs, %w{bin log tmp public/assets public/sites public/system}
set :file_permissions_roles, :all
set :file_permissions_paths, ["/usr/local/rbenv"]
set :file_permissions_users, ["deployuser"]
set :file_permissions_chmod_mode, "0770"
after "deploy:updated", "deploy:set_permissions:chmod"production.rb
set :stage, :production
server "[FILTERED].com", user: "deployuser", roles: %w{web app db}
# Important! set your branch from git!
set :branch, "master"
set :nginx_server_name, "[FILTERED].com"
set :nginx_use_spdy, false
set :nginx_ssl_certificate, "[FILTERED].pem"
set :nginx_ssl_certificate_key, "[FILTERED].key"
set :nginx_enable_pagespeed, true
set :nginx_pagespeed_enabled_filters, "lazyload_images"
set :unicorn_workers, 2发布于 2015-06-27 14:43:22
看起来您的deploy.rb中缺少rails_env,请尝试添加下面这行:
set :rails_env, 'production'您可以在capistrano/rails Github页面的自述文件中找到https://github.com/capistrano/rails
基本上,它所做的就是在服务器上的大多数(如果不是全部) rails命令前面加上RAILS_ENV环境变量。
您还可以将其添加到服务器上的一个点文件中(如~/.bashrc):
export RAILS_ENV=production或者,如果您希望为服务器上的所有用户帐户设置,请将以下内容添加到/etc/environment中(无论如何都可以在Debian上运行):
RAILS_ENV=production注意:不要将export放在/etc/environment中
就我个人而言,我在服务器上的deploy.rb和/etc/environment中设置了它,因为我知道我永远不想在那里使用除生产之外的任何东西。
https://stackoverflow.com/questions/30427215
复制相似问题