如何在Rails中设置database.yml文件?

我正在做本教程(http://dmix.ca/2008/09/how-to-scrape-websites-in-ruby-on-rails-using-scrubyt/),在开始之前是第4步设置database.yml文件。 不确定那是什么意思。 有人可以解释一下吗?

起初我会使用http://ruby.railstutorial.org/ 。

而database.yml是您为应用程序使用数据库设置的地方 – 用户名,密码,主机 – 用于每个数据库。 使用新的应用程序,您无需更改任何内容 – 只需使用默认的sqlite设置。

database.yml是您设置连接到数据库的所有信息的文件。 它根据您使用的DB类型而有所不同。 您可以在Rails指南或任何解释如何设置rails项目的教程中找到有关此内容的更多信息。

database.yml文件中的信息由环境确定,允许您为测试,开发或生产获取不同的设置。 如果您不希望在运行测试套件时错误地删除用于开发的数据,那么保持这些区别非常重要。

关于源代码控制,您不应提交此文件,而是为其他开发人员创建模板文件(称为database.yml.template )。 部署时,约定是直接在服务器上的/shared/config创建此database.yml文件。

使用SVN: svn propset svn:ignore config "database.yml"

使用Git:将config/database.yml添加到.gitignore文件或使用git-extra git ignore config/database.yml


……现在,举一些例子:

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 

使用MongoID的MongoDB(称为mongoid.yml,但基本相同)

 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 

database.yml是使用/config新rails应用程序创建的文件,它定义了应用程序将在不同环境中使用的数据库配置。 阅读本文了解详情。

示例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