如何配置Rails应用程序以在生产环境和测试环境之间切换?有办法吗?
发布于 2018-01-17 08:22:32
您可以在config/
目录和db/
中创建特定于环境的配置文件。
要在不同环境之间切换,可以在运行rails时指定RAILS_ENV
环境变量:
rails s RAILS_ENV=production
rails s RAILS_ENV=test
# With bundler
bundle exec rails s RAILS_ENV=production
bundle exec rails s RAILS_ENV=test
您可以在Configuration应用程序指南中阅读更多有关它的内容。
如果要为站点设置多个配置,则需要在数据库中创建设置模型。这将使您能够在站点配置之间切换。您不应该依赖于生产/测试/分阶段配置YAML文件,您应该将您的web应用程序视为多站点;为每个站点/域/子域存储不同的配置设置,类似于基于这些CMSes的Wordpress、Drupal、Magento和其他web应用程序的配置设置。
发布于 2018-01-17 18:43:08
不幸的是,这几乎是不可能的,因为您可能在生产和测试中使用不同的配置。例如,您可能在生产中使用美洲狮或独角兽,而您只是在测试中使用rails。此外,您可能在生产和测试中使用不同的数据库。
我不知道您的用例是什么,但我的建议是创建一个按钮,在用户单击此按钮时将用户重定向到另一个服务器。唯一的其他可能性是,只要单击此按钮,就会触发新的部署。因此,基本上,在单击此按钮5分钟后,您将在生产服务器的位置部署一个测试服务器。与旧服务器相比,负载均衡器将指向此新服务器。这是难以置信的复杂,用例可能不存在,但它实际上回答了您的问题。祝好运!
https://stackoverflow.com/questions/48305399
复制