【发布时间】:2016-08-05 10:37:57
【问题描述】:
我正在本地机器(OS X El Capitan)上运行 Rails 4.2.5 应用程序。 它在开发模式下运行良好。
但后来我决定看看它在生产模式下是如何工作的,所以切换到生产并运行服务器。
bundle install --deployment --without development test
bundle exec rake db:create RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake db:seed RAILS_ENV=production
bundle exec rake assets:precompile RAILS_ENV=production
bundle exec rails s -e production
并非一切看起来都很好。所以我做了一些改变,直到一切正常。
之后,我需要添加一些实现的功能,所以再次切换回开发模式并运行服务器。
bundle install
bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rails s
服务器运行没有问题,但我发现它使用的是生产数据库而不是开发数据库。
我尝试通过执行bundle exec rake tmp:cache:clear 清除所有缓存,但没有帮助。
仅供参考,我将 postgres 用于生产和开发。
这是database.yml 文件:
default: &default
adapter: postgresql
encoding: unicode
pool: 30
development:
<<: *default
username: <%= ENV['OATV_POSTGRES_USERNAME'] %>
password: <%= ENV['OATV_POSTGRES_PASSWORD'] %>
database: <%= ENV['OATV_POSTGRES_DATABASE_DEVELOPMENT'] %>
test:
<<: *default
username: <%= ENV['OATV_POSTGRES_USERNAME'] %>
password: <%= ENV['OATV_POSTGRES_PASSWORD'] %>
database: <%= ENV['OATV_POSTGRES_DATABASE_TEST'] %>
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
当然,我已经在本地机器上设置了所有的环境变量,因为我需要在开发、测试和生产模式下进行测试。
这里可能的原因是什么?
提前感谢您的任何回答。
【问题讨论】:
-
你杀死了之前的守护生产服务器吗?
-
@sixty4bit 对不起。我打错了文字。我实际上并没有将生产服务器作为守护进程运行。相应地修改了问题。
-
检查 RAILS_ENV 是否在您的环境中导出。也许您这样做是为了方便?
-
解决方案:重新启动机器并重试。另外你怎么知道你是在生产数据库上运行而不是在开发中?您在本地也有生产数据库?
-
@Aleks 我的本地机器上有一个生产数据库。
标签: ruby-on-rails postgresql ruby-on-rails-4 production dev-to-production