2011-07-23 17 views
7

Jestem początkującym użytkownikiem szyn/terminali i właśnie wykonałem czystą instalację Lion + Xcode + Rails. W przeciwieństwie do wcześniejszych (na Snow Leopard), teraz otrzymuję komunikat o błędzie prowizji: migracja.Problem z prowizją: "baza danych programowania nie jest skonfigurowana"

mam sklonowany mojego kodu poprzez git, który pracował w porządku i utworzeniu bazy danych witht polecenia „createdb”, ale gdy próbuję uruchomić „rake db: migrować” w terminalu to teraz wyjdzie z tego błędu:

rake aborted! 
development database is not configured 

Mój plik config/database.yml wygląda jak poniżej w dziale deweloperskim, który jest dokładnie taki, jak wcześniej wyglądał na Snow Leopard, gdzie działał dobrze, więc nie wiem, czy błąd, który teraz otrzymuję, jest związany z Lionem.

development: 
adapter: postgresql 
database: my_db 
username: rasmus 
encoding: utf8 
pool: 5 

Czy ktoś może pomóc?

Odpowiedz

1

Rozwiązany!

Moja "gem install pg" nie została uruchomiona, więc w zasadzie brakowało mi pg gem. Po "gem install pg" w terminalu wszystko działa dobrze.

18

Wystąpił ten sam błąd iw moim przypadku było tak, ponieważ database.yml nie został poprawnie wcięty. Wszystkie parametry konfiguracyjne powinny być wcięte.

1

Oto odpowiedź PEBCAK dla Googlersów - sprawdź swój Gemfile i upewnij się, że określiłeś klejnotu bazy danych w odpowiedniej grupie w swoim Gemfile. Mam moje zdefiniowane tylko dla :production i :staging iw jednym punkcie musiałem ręcznie uruchomić gem install pg na mojej maszynie programistycznej po zmianie z mysql. Dziś rano opróżniłem wszystkie klejnoty dla tej aplikacji i otrzymałem je ponownie, a następnie nie mogłem ustalić, dlaczego baza danych nie połączy się. Przeniesienie specyfikacji gem pg na zewnątrz dowolnej grupy i uruchomienie bundle install rozwiązało problem.

4

Pamiętaj, aby przestrzegać odpowiednich konwencji dotyczących odstępów. Konfiguracja bazy danych jest pusta. Dwa spacje na atrybut działają dobrze. W poniższym kodzie zanotuj, jak każdy atrybut ma dwie spacje. Nie używaj zakładek. Jeśli nie użyjesz spacji dla atrybutów, rake nie zadziała i zrzuci ten sam błąd.

development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: db/production 
    pool: 5 
    timeout: 5000 
    password: 
2

Możesz również chcieć szukać błędów składniowych w pliku. Jest to błąd, który pojawi się, jeśli masz błąd składni w pliku config/database.yml i próbujesz zrobić coś takiego jak uruchomić lokalny serwer WWW lub uruchomić rake db:migrate.

W moim przypadku przypadkowo usunąłem komentarz z wiersza na górze pliku i widziałem ten błąd, ponieważ nieodwołana linia spowodowała, że ​​był to niepoprawny plik yml.

0

Co działało w moim przypadku, po wypróbowaniu wszystkich powyższych sytuacji, gdy rake db: create failed, było upewnienie się, że mój Rakefile został poprawnie skonfigurowany.

To nie praca:

require "sinatra/activerecord/rake" 
require 'sinatra/asset_pipeline/task' 

namespace :db do 
    task :load_config do 
    require "./app" 
    end 
end 
1

Uwaga do innych, którzy lądują na tej stronie pytanie: upewnij się, że używasz polecenia rake db poprawnie, tj:

rake db:migrate zamiast rake db migrate

Powiązane problemy