ruby on rails - rails - Agregar un entorno de ensayo al flujo de trabajo
content_tag link_to rails (3)
Encontré la heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAME
como una forma más rápida y fácil de hacerlo ... crea la nueva aplicación, copia todo (incluida la base de datos de postgres). Luego entré y actualicé manualmente los complementos a planes más pequeños cuando tenía sentido (por ejemplo, una base de datos de nivel inicial).
De hecho, comenzamos a utilizar el heroku pipeline:promote
relativamente nuevo heroku pipeline:promote
para administrar automáticamente (y MUY rápidamente) empujando un slug compilado desde la puesta en escena a la producción. (Eso supone que tiene alguna configuración específica de env a través de la configuración o las variables de entorno, por lo que la bala de código es la misma).
Actualmente tengo dos entornos en los que trabajo: development
local y production
en Heroku.
Me gustaría agregar un entorno de prueba en Heroku para ver que todo salga como se esperaba antes de enviar la aplicación en vivo a los usuarios. Preferiblemente, el entorno de staging
debe tener exactamente la misma configuración y datos que el entorno de production
.
¿Cuáles son los pasos necesarios para lograr lo anterior?
Primero, las predisposiciones, me gusta tener mis controles remotos heroku git configurados como puesta en escena y producción para que pueda utilizar fácilmente la puesta en escena / producción git push para implementar en cada uno de ellos. Usaré esa configuración para explicar cómo hacer un env de puesta en escena.
- cree una
config/environments/staging.rb
que copiará de `config / environment / production.rb '' - agrega una entrada database.yml para la base de datos provisional (no es realmente necesaria para heroku pero no puede hacer daño)
- Copia de seguridad de su archivo .env (si lo tiene)
- Instale el complemento heroku-config con los complementos de
heroku plugins:install git://github.com/ddollar/heroku-config.git
- extraiga la configuración de su entorno de heroku (servidor de producción) con
heroku config:pull --remote production
- realice cambios en el archivo .env y no olvide agregar estos valores a la configuración:
RACK_ENV=staging RAILS_ENV=staging
para que use la configuración del entorno de estadificación. - fork un entorno heroku con
heroku fork -a production staging
(son los nombres de heroku que quieres en lugar de producción / puesta en escena) - Haz un `heroku config: push --remote staging ''
- Asegúrate de desplegar el código para la puesta en escena de forma adecuada
También puede leer este tutorial, creo que lo usé para comenzar con varios envs en heroku: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
Tenga en cuenta que el procedimiento explicado por berislavbabic no se recomienda de acuerdo con la siguiente guía en el sitio de Heroku: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
Puede leer en detalle allí, pero la recomendación es mantener el entorno de prueba igual que el entorno de producción y simplemente usar el fork de heroku para copiar desde la producción a la puesta en escena.