如何在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