Ruby on rails 4 Capistrano迁移到开发数据库

Ruby on rails 4 Capistrano迁移到开发数据库,ruby-on-rails-4,deployment,production-environment,capistrano3,Ruby On Rails 4,Deployment,Production Environment,Capistrano3,我有一个奇怪的问题。。。我使用Capistrano和pagespeed、nginx、unicorn部署我的应用程序。奇怪的是,我的应用程序在服务器上的生产数据库上运行是正确的,但Capistrano将所有迁移到服务器上的开发数据库有2个数据库,据我所知,应该只有生产数据库,所有操作都应该与它一起进行。。。我不明白为什么 我不明白。。。为什么它试图在我的服务器上创建开发数据库?ActiveRecord::NoDatabaseError:致命:在我手动创建数据库foreignernetwork_之前

我有一个奇怪的问题。。。我使用Capistrano和pagespeed、nginx、unicorn部署我的应用程序。奇怪的是,我的应用程序在服务器上的生产数据库上运行是正确的,但Capistrano将所有迁移到服务器上的开发数据库有2个数据库,据我所知,应该只有生产数据库,所有操作都应该与它一起进行。。。我不明白为什么

我不明白。。。为什么它试图在我的服务器上创建开发数据库?ActiveRecord::NoDatabaseError:致命:在我手动创建数据库foreignernetwork_之前,它的开发不存在,但现在我看到了我的问题,我试图找出如何使它成为foreignernetwork_产品。。。你能告诉我原因吗

我的文件:

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
看起来deploy.rb中缺少rails_env,请尝试添加以下行:

set :rails_env, 'production'
您可以在capistrano/rails Github页面上的自述文件中找到这一点

基本上,它所做的是将RAILS_ENV环境变量作为服务器上大多数(如果不是所有)RAILS命令的前缀

您还可以将其添加到服务器上的点文件中,如~/.bashrc:

或者,如果您希望为服务器上的所有用户帐户设置此选项,请将其添加到/etc/environment works on Debian:

RAILS_ENV=production
注意:您没有将导出放在/etc/environment中

就我个人而言,我在服务器上的deploy.rb和/etc/environment中设置了它,因为我知道我不想在那里使用除生产之外的任何东西

RAILS_ENV=production