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

Zac*_*iro 18 ruby database yaml ruby-on-rails

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

mar*_*cgg 68

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
Run Code Online (Sandbox Code Playgroud)

MYSQL

adapter: mysql
database: my_db
hostname: 127.0.0.1
username: root
password: 
socket: /tmp/mysql.sock
pool: 5
timeout: 5000
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)


cmp*_*lis 18

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

示例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           
Run Code Online (Sandbox Code Playgroud)