我有一个奇怪的问题......我使用Capistrano部署我的应用程序(使用pagespeed,nginx,unicorn)。奇怪的是我的应用程序在服务器上的生产数据库上运行(是正确的),但是Capistrano将所有迁移到服务器上的DEVELOPMENT数据库(有2个数据库,据我所知,应该只有生产数据库和所有操纵应该是它)...我不明白为什么......
我不明白......为什么它试图在我的服务器上创建开发数据库? ActiveRecord :: NoDatabaseError:致命:数据库" 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
答案 0 :(得分:0)
您rails_env
中的遗漏deploy.rb
看起来似乎没有,请尝试添加此行:
set :rails_env, 'production'
您可以在capistrano / rails Github页面https://github.com/capistrano/rails
的README中找到它的作用基本上是将RAILS_ENV
环境变量作为服务器上大多数(如果不是全部)rails命令的前缀。
您也可以将其添加到服务器上的点文件(例如~/.bashrc
):
export RAILS_ENV=production
或者如果你想为服务器上的所有用户帐户设置它,请将其添加到/etc/environment
(无论如何都适用于Debian):
RAILS_ENV=production
注意:您未将export
放入/etc/environment
就我个人而言,我在服务器上的deploy.rb
和/etc/environment
设置了它,因为我知道我从不想在那里使用任何其他产品。