web-dev-qa-db-ja.com

Railsでdatabase.ymlファイルを設定するにはどうすればよいですか?

私はこのチュートリアル(http://dmix.ca/2008/09/how-to-scrape-websites-in-Ruby-on-Rails-using-scrubyt/)を実行しており、開始する前のステップ4はセットアップすることですdatabase.ymlファイル。それが何を意味するのか分かりません。誰か説明していただけますか?

18
Zack Shapiro

最初は http://Ruby.railstutorial.org/ を使用します。

また、database.ymlは、アプリケーションが使用するデータベース(ユーザー名、パスワード、ホスト)のセットアップを各データベースに配置する場所です。新しいアプリケーションでは、何も変更する必要はありません。デフォルトのsqliteセットアップを使用するだけです。

2
Sławosz

Database.ymlは、データベースに接続するためのすべての情報を設定するファイルです。使用するDBの種類によって異なります。この詳細については、 Rails Guide 、またはRailsプロジェクトのセットアップ方法を説明するチュートリアルを参照してください。

Database.ymlファイルの情報のスコープは環境によって異なり、テスト、開発、または本番用に異なる設定を取得できます。テストスイートの実行中に、開発に使用するデータを誤って削除したくない場合は、これらを区別しておくことが重要です。

ソース管理に関しては、このファイルをコミットするのではなく、他の開発者用のテンプレートファイル(database.yml.templateと呼ばれる)を作成する必要があります。デプロイする際の規則は、このdatabase.ymlファイルを/shared/configにサーバー上で直接作成することです。

SVNの場合:svn propset svn:ignore config "database.yml"

Gitの場合:config/database.ymlを.gitignoreファイルに追加するか、 git-extragit 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
67
marcgg

database.ymlは、新しい[Rails applications in /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           
18
cmpolis