Mi riferisco a ad API KEY, mail server e altri valori che non
appartengono direttamente all’applicazione, ma che possono cambiare da
un’istanza a un’altra.
L’approccio che va per la maggiore è mettere tutto dentro gli
initializers, ma non mi sembra troppo furbo perché dovrebbe essere un
file che non viene tracciato in Git e viene caricato prima di tutti gli
initializers.
Inoltre sarebbe carino che una variabile es. item_per_page abbia un
default in file yaml, ma che sia anche sovrascrivibile (e quindi a
questo punto salvata in un db).
Qui ci sono alcuni spunti
e sicuramente ce ne saranno altri… ma qual’é il più furbo?
Noi abbiamo messo quelle info in un file tipo:
.nomeprogetto
che non versionato ma ognuno ha sulla propria macchina.
nei file di configurazione usiamo dei placeholders (es. $S3_API_KEY$)
con un bash script andiamo a sostituire i placeholders con i valori
corretti in fase di deploy.
La stessa tecnica la puoi implementare un po’ come ti pare, noi
l’abbiamo
fatto con bash tu lo puoi fare con il tool che preferisci.
Mi riferisco a ad API KEY, mail server e altri valori che non
appartengono direttamente all’applicazione, ma che possono cambiare da
un’istanza a un’altra.
io di solito li metto in un file .yml in /config e lo faccio caricare
da un inizializer.
lo script di deploy, sul server di produzione/staging crea un symlink
alla directory
shared di capistrano, et voill.
Mi piace l’idea che un file yaml sia mappato a una costante che assumerà
valori diversi a seconda dell’ambie\nte test, dev o prod, per ora ho
testato questo sistema e sembra fare quello che volevo.
Mi piace l’idea che un file yaml sia mappato a una costante che assumer
valori diversi a seconda dell’ambie\nte test, dev o prod, per ora ho
testato questo sistema e sembra fare quello che volevo.
Con rails 3 trovo comodo usare una gemma che fa questo:
poi, se nella configurazione ci sono elementi che non devono finire in
svn/git, come per database.yml evito di mettere il file production.yml e
lo
creo direttamente sui server (e se vuoi evitare di doverlo fare
‘manualmente’ per ogni server che installi puoi seguire i consigli di
weppos:
Mi piace l’idea che un file yaml sia mappato a una costante che assumer
valori diversi a seconda dell’ambie\nte test, dev o prod, per ora ho
testato questo sistema e sembra fare quello che volevo.
poi, se nella configurazione ci sono elementi che non devono finire in
svn/git, come per database.yml evito di mettere il file production.yml e
lo
creo direttamente sui server (e se vuoi evitare di doverlo fare
‘manualmente’ per ogni server che installi puoi seguire i consigli di
weppos: Capistrano and database.yml — Simone Carletti
)
ciao,
Luca
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.