60 votes

Comment créer un nouvel environnement dans Ruby on Rails ?

J'essaie de créer un nouvel environnement (build) pour l'utiliser avec hudson.

Je fais cela parce que je ne voulais pas mélanger mes bases de données de test avec la base de données de test hudson.

97voto

Simone Carletti Points 77653

En supposant que vous voulez créer le hudson l'environnement.

  1. Créez un nouveau fichier d'environnement dans config/environments/hudson.rb . Vous pouvez commencer par en cloner un existant, par exemple config/environments/test.rb .
  2. Ajouter un nouveau bloc de configuration dans config/database.yml pour votre environnement.
  3. Mettez à jour tout autre fichier de configuration que vous pourriez avoir sous l'onglet config avec votre nouvel environnement, certaines gemmes créent leur propre ymls en vertu de la config dossier.
  4. C'est tout.

Maintenant vous pouvez démarrer le serveur

rails server -e hudson

ou lancez la console

rails console hudson

Et ainsi de suite.

Si vous utilisez une ancienne version de Rails, les commandes sont les suivantes

ruby script/server -e hudson
ruby script/console hudson

9 votes

Vous avez oublié de préciser que vous devez également vérifier votre gemfile et créer un groupe, pour les gemmes dans cet environnement

6 votes

Vous devez également définir la base de la clé secrète dans le fichier secrets.yml pour votre nouvel environnement.

2 votes

De plus, si vous avez différents environnements qui utilisent les mêmes paramètres de configuration/environnement, comme la production par exemple, vous pouvez ajouter cette ligne à votre nouveau fichier environments/hudson.rb pour éliminer la redondance ( voir ceci pour plus d'informations ). require Rails.Root.join("config/environnements/production")

23voto

Shaunak Points 3769

Réponse mise à jour pour Rails 5

Créer un nouveau fichier d'environnement :

config/environments/staging.rb

Modifiez les fichiers suivants pour ajouter la clé d'environnement 'staging'.

config/cable.yml
config/database.yml
config/secrets.yml
Gemfile (incase you have stage dependent gems)

Les nouveaux environnements peuvent maintenant être utilisés comme d'habitude pour, par exemple, la gestion de l'eau :

rails server -e staging

rails console staging

Ou pour effectuer des contrôles conditionnels :

rails console staging, Rails.env.staging?

Le bon point de départ pour créer un nouvel environnement et modifier ces fichiers est de copier les paramètres de production.

3voto

hidace Points 989

Si vous utilisez webpacker dans votre application Rails 5, veillez également à mettre à jour le fichier config/webpacker.yml . Si vous oubliez d'ajouter votre nouvel environnement à config/webpacker.yml il se contentera d'utiliser votre configuration de production.

1voto

Damien MATHIEU Points 13805

Créer un fichier config/environments/build.rb qui contiendra les options spécifiques à votre environnement.
Ajoutez les informations d'identification de la base de données de votre nouvel environnement dans le champ config/database.yml .

Rock and roll !

0 votes

Pourquoi ne pas avoir mentionné le dossier secrets.yml ?

0 votes

Parce que secrets.yml signifie que vous codez en dur les informations d'identification dans votre dépôt git, ce qui est une très mauvaise pratique en matière de sécurité.

0 votes

Oui, je voulais dire qu'à l'intérieur de ce fichier vous devez aussi ajouter la clé staging: .. comme production a raison ?

0voto

John Topley Points 58789

Ce Railscast a les détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X