¡Puede tener las configuraciones almacenadas persistentemente EN la configuración local de cada aplicación heroku para que no tengan que estar en su código en absoluto! entonces el mismo código puede ejecutarse en múltiples sitios heroku pero con diferente configuración. Es muy simple, fácil, elegante ...
Es el enfoque que utilizamos. (Lo usamos por el MISMO ... tenemos múltiples clones de la MISMA aplicación en Heroku, pero solo queremos UNA fuente en github, en nuestro directorio local de desarrollo hacemos la PULSACIÓN a ORIGEN (github), luego cuando tenemos de la manera que nos gusta, llevamos CD al directorio local de prod, que va al MISMO repositorio de github, y SÓLO PULL de GITHUB en este directorio, nunca presione (por ejemplo, todos los empujones a github provienen de nuestro directorio de desarrollo, el directorio prod es sólo un área de ensayo para la otra aplicación heroku.)
por tener las configuraciones diferentes en los distintos sitios heroku (como se explica más adelante), los EXACT mismo código funciona tanto en sitios Heroku.
Así que nuestro flujo de trabajo es: (la clave es que ambos directorios apuntan a repo github MISMO)
cd myDEVdir
*....develop away....*
git add .
git commit -am "another day, another push"
git push origin *(to our SINGLE github repo)*
git push heroku *(test it out on heroku #1)*
cd ../myPRODdir
git pull *(grabs SAME code as used on other site *)
git push heroku *(now the SAME code runs on Heroku #2)*
eso es todo!
Ahora aquí es cómo mantener su configuración específica del sitio vars en el sitio heroku:
http://docs.heroku.com/config-vars
en su línea de mando local, para cada uno de sus dos directorios locales, haces:
$ heroku config:add FIRST_CONFIGVAR=fooheroku1
Adding config vars:
FIRST_CONFIGVAR => fooheroku1
$ heroku config:add SECOND_CONFIGVAR=barheroku1
Adding config vars:
SECOND_CONFIGVAR => barheroku1
a ver los que usted ha definido:
$ heroku config
FIRST_CONFIGVAR => fooheroku1
SECOND_CONFIGVAR => barheroku1
luego cd a su otro directorio myPRODdir y haga lo MISMO, solo configure los mismos vars de heroku remotos para fooheroku2 y barheroku2.
entonces en sus rieles aplicación que sencilla refieren a ellos de esta manera:
a = ENV['FIRST_CONFIGVAR']
Una aplicación va a leer 'fooheroku1' la otra aplicación leerá 'fooheroku2'
Y, por último, en su directorio local myDEVdir, donde se ejecuta en modo dEV, puso a los mismos comandos de configuración en su config/environment/development.rb
presentar su versión de 'dev' de los VARs de configuración se ajustará a lo que deben ser:
ENV['FIRST_CONFIGVAR'] = "foodev"
ENV['SECOND_CONFIGVAR'] = "bardev"
Fácil, elegante. Gracias, Heroku!
¿Hacer git branches no es una opción? – freedrull