2011-09-05 14 views
16

Estoy haciendo este tutorial (http://dmix.ca/2008/09/how-to-scrape-websites-in-ruby-on-rails-using-scrubyt/) y el paso 4 antes de comenzar es configurar el archivo database.yml No estoy seguro de lo que eso significa. ¿Podría alguien explicar por favor?¿Cómo configuro el archivo database.yml en Rails?

+0

No hay problema. Gracias Zack. –

Respuesta

2

Al principio me gustaría utilizar http://ruby.railstutorial.org/.

Y database.yml es el lugar donde pone la configuración para la base de datos que usa su aplicación - nombre de usuario, contraseña, host - para cada base de datos. Con la nueva aplicación no necesita cambiar nada, simplemente use la configuración predeterminada de sqlite.

16

El database.yml es un archivo que se crea con nuevas aplicaciones de rieles en /config y define las configuraciones de la base de datos que su aplicación usará en diferentes entornos. Read this for details.

Ejemplo database.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   
+0

Si el archivo 'database.yml' está registrado en el control de fuente, ¿no sería realmente una mala cosa ™ si se registrara alguna contraseña de base de datos, especialmente una de producción? – Makoto

+1

@Makoto sí, es un riesgo. Una opción es usar variables de entorno. Por ejemplo, Heroku usa la variable de entorno 'DATABASE_URL' que contiene datos tales como el nombre de usuario, la contraseña y la ubicación del DB. Luego analiza ese env var y lo usa para crear un archivo 'database.yml'. – Dennis

58

database.yml es el archivo donde configura toda la información para conectarse a la base de datos. Difiere según el tipo de base de datos que utilice. Puede encontrar más información al respecto en el Rails Guide o en cualquier tutorial que explique cómo configurar un proyecto de rieles.

La información en el archivo database.yml está delimitada por entorno, lo que le permite obtener una configuración diferente para pruebas, desarrollo o producción. Es importante que los mantenga distintos si no desea que los datos que utiliza para el desarrollo se eliminen por error mientras ejecuta su conjunto de pruebas.

En cuanto al control de código fuente, no debe confirmar este archivo, sino que debe crear un archivo de plantilla para otros desarrolladores (llamado database.yml.template). Al implementar, la convención es crear este archivo database.yml en /shared/config directamente en el servidor.

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

Con Git: Añadir config/database.yml al archivo .gitignore o con git-extragit ignore config/database.yml


... y ahora, algunos ejemplos:

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 con MongoId (llamado mongoid.yml, pero básicamente la misma cosa)

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 
Cuestiones relacionadas