2011-09-05 34 views

cevap

2

. kullanıcı adı, şifre, ev sahibi - - Her veritabanı için

Ve database.yml veritabanına için uygulama kullanımı kurulumu koymak yerdir. Yeni uygulama ile herhangi bir şeyi değiştirmenize gerek yoktur - sadece varsayılan sqlite kurulumunu kullanın.

16

database.yml, /config numaralı yeni raylı uygulamalarla oluşturulan ve uygulamanızın farklı ortamlarda kullanacağı veritabanı yapılandırmalarını tanımlayan bir dosyadır. Read this for details.

Örnek database.yml: İlk ben http://ruby.railstutorial.org/ kullanacağı anda

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   
+0

Eğer 'database.yml 'dosyası kaynak kontrol olarak kontrol edilirse, herhangi bir veritabanı şifresi kontrol edildiğinde Gerçekten Kötü Bir Şey Olmaz - özellikle üretimden bir tanesi? – Makoto

+1

@Makoto evet bu bir risk. Bir seçenek, ortam değişkenlerini kullanmaktır. Örneğin, Heroku, DB'nin kullanıcı adı, parola ve konumu gibi verileri içeren 'DATABASE_URL' ortam değişkeni kullanır. Daha sonra bu env var ayrıştırır ve bir 'database.yml' dosyası oluşturmak için kullanır. – Dennis

58

database.yml veritabanına bağlanmak için tüm bilgileri kurmak dosyasıdır. Kullandığınız DB türüne göre farklılık gösterir. Bununla ilgili daha fazla bilgiyi Rails Guide numaralı telefondan veya ray projesinin nasıl kurulacağını açıklayan herhangi bir eğiticide bulabilirsiniz.

database.yml dosyasındaki bilgiler

Eğer test, geliştirme veya üretim için farklı bir ayar almak için izin çevre tarafından kapsamlı. Test paketinizi çalıştırırken, geliştirme için kullandığınız verilerin yanlışlıkla silinmesini istemiyorsanız, bunları farklı tutmanız önemlidir. kaynak denetimi ile ilgili olarak

, bu dosyayı işlemek yerine (database.yml.template denir) diğer geliştiriciler için bir şablon dosyası oluşturmak gerekir. Dağıtımı yaparken, bu sunucu /shared/config veritabanında doğrudan bu database.yml dosyasını oluşturmaktır.

SQLite'ı

: svn propset svn:ignore config "database.yml" Git ile

: şimdi, bazı örnekler .gitignore dosyasına config/database.yml ekleme veya git-extragit ignore config/database.yml


ile ... ve SVN ile

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 

MongoDB MongoID (denilen mongoid.yml, ama temelde aynı şey) ile

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 
İlgili konular