web-dev-qa-db-fra.com

Comment configurer le fichier database.yml dans Rails?

Je fais ce tutoriel (http://dmix.ca/2008/09/how-to-scrape-websites-in-Ruby-on-Rails-using-scrubyt/) et l'étape 4 avant de commencer est de configurer le fichier database.yml. Je ne suis pas sûr de ce que cela veut dire. Quelqu'un pourrait-il expliquer?

18
Zack Shapiro

Au début, j'utiliserais http://Ruby.railstutorial.org/ .

Et database.yml est l'endroit où vous mettez la configuration pour la base de données que votre application utilise - nom d'utilisateur, mot de passe, hôte - pour chaque base de données. Avec la nouvelle application, vous n'avez rien à changer - utilisez simplement la configuration sqlite par défaut.

2
Sławosz

Le fichier database.yml est le fichier dans lequel vous configurez toutes les informations pour vous connecter à la base de données. Cela diffère selon le type de base de données que vous utilisez. Vous pouvez trouver plus d'informations à ce sujet dans le Guide Rails ou tout tutoriel expliquant comment configurer un projet Rails.

Les informations du fichier database.yml sont limitées à l'environnement, ce qui vous permet d'obtenir un paramètre différent pour les tests, le développement ou la production. Il est important de les conserver si vous ne voulez pas que les données que vous utilisez pour le développement soient supprimées par erreur lors de l'exécution de votre suite de tests.

En ce qui concerne le contrôle de code source, vous ne devez pas valider ce fichier mais plutôt créer un fichier modèle pour d'autres développeurs (appelé database.yml.template). Lors du déploiement, la convention consiste à créer ce fichier database.yml dans /shared/config directement sur le serveur.

Avec SVN: svn propset svn:ignore config "database.yml"

Avec Git: ajoutez config/database.yml au fichier .gitignore ou avec git-extragit ignore config/database.yml


... et maintenant, quelques exemples:

SQLite

adapter: sqlite3
database: db/db_dev_db.sqlite3
pool: 5
timeout: 5000

[~ # ~] mysql [~ # ~]

adapter: mysql
database: my_db
hostname: 127.0.0.1
username: root
password: 
socket: /tmp/mysql.sock
pool: 5
timeout: 5000

MongoDB avec MongoID (appelé mongoid.yml, mais essentiellement la même chose)

Host: <%= ENV['MONGOID_Host'] %>
port: <%= ENV['MONGOID_PORT'] %>
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
# slaves:
#   - Host: slave1.local
#     port: 27018
#   - Host: slave2.local
#     port: 27019
67
marcgg

Le database.yml est un fichier créé avec de nouvelles applications Rails dans /config et définit les configurations de base de données que votre application utilisera dans différents environnements. Lisez ceci pour plus de détails.

Exemple de base de données.yml:

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: mysql
  encoding: utf8
  database: your_db
  username: root
  password: your_pass
  socket: /tmp/mysql.sock
  Host: your_db_ip     #defaults to 127.0.0.1
  port: 3306           
18
cmpolis