2011-09-05 7 views
16

Robię samouczek (http://dmix.ca/2008/09/how-to-scrape-websites-in-ruby-on-rails-using-scrubyt/) i etap 4 zanim zacznę jest skonfiguruj plik database.yml. Nie jestem pewna co to oznacza. Czy ktoś mógłby mi wyjaśnić?Jak skonfigurować plik database.yml w Railsach?

+0

Nie ma problemu. Dzięki Zack. –

Odpowiedz

2

Najpierw będzie używać http://ruby.railstutorial.org/.

I database.yml jest miejsce, gdzie można umieścić swoją konfigurację dla bazy użyciu aplikacja - nazwę użytkownika, hasło, host - dla każdej bazy danych. Dzięki nowej aplikacji nie musisz niczego zmieniać - wystarczy użyć domyślnej konfiguracji sqlite.

16

database.yml to plik utworzony za pomocą nowych aplikacji szyn w wersji /config i definiujący konfiguracje bazy danych, które będą używane w różnych środowiskach. Read this for details.

Przykład 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   
+0

Jeśli 'database.yml' plik jest sprawdzany pod kontrolą źródła, nie byłoby naprawdę źle ™ ewentualne hasło w bazie zostały sprawdzone w - zwłaszcza jeden z produkcji? – Makoto

+1

@Makoto tak, to ryzyko. Jedną z opcji jest użycie zmiennych środowiskowych. Na przykład Heroku używa zmiennej środowiskowej 'DATABASE_URL', która zawiera dane takie jak nazwa użytkownika, hasło i lokalizacja bazy danych. Następnie analizuje to env var i używa go do utworzenia pliku 'database.yml'. – Dennis

58

database.yml to plik gdzie skonfigurować wszystkie informacje, aby połączyć się z bazą danych. Różni się w zależności od rodzaju DB, którego używasz. Możesz znaleźć więcej informacji na ten temat w Rails Guide lub w dowolnym samouczku wyjaśniającym, jak skonfigurować projekt szyn.

Informacje zawarte w pliku database.yml jest zawężona przez środowisko, co pozwala uzyskać różne ustawienia dla testów, rozwoju lub produkcji. Ważne jest, aby zachować je odrębne, jeśli nie chcesz, aby dane używane do programowania zostały usunięte przez pomyłkę podczas uruchamiania zestawu testów.

Jeśli chodzi o kontrolę kodu źródłowego, nie powinieneś zatwierdzać tego pliku, ale utworzyć plik szablonu dla innych programistów (o nazwie database.yml.template). Podczas wdrażania konwencja polega na utworzeniu tego pliku database.yml pod numerem /shared/config bezpośrednio na serwerze.

z SVN: svn propset svn:ignore config "database.yml"

Z Git: dodaj config/database.yml do pliku .gitignore lub z git-extragit ignore config/database.yml


... A teraz kilka przykładów:

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 

MongoDB z MongoID (tzw mongoid.yml, ale w zasadzie to samo)

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 
Powiązane problemy