我正在做这个教程(http://dmix.ca/2008/09/how-to-scrape-websites-in-ruby-on-rails-using-scrubyt/),在我开始之前的第4步是设置database.yml文件。不确定那是什么意思。有人可以解释一下吗?
答案 0 :(得分:66)
database.yml是您设置连接到数据库的所有信息的文件。它根据您使用的DB类型而有所不同。您可以在Rails Guide或任何解释如何设置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
答案 1 :(得分:18)
database.yml
是使用/config
中的新rails应用程序创建的文件,它定义了应用程序将在不同环境中使用的数据库配置。 Read this for details.
示例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
答案 2 :(得分:2)
起初我会使用http://ruby.railstutorial.org/。
并且database.yml是您为应用程序使用的数据库设置的位置 - 用户名,密码,主机 - 用于每个数据库。使用新的应用程序,您无需更改任何内容 - 只需使用默认的sqlite设置。