20

Zainstalowałem PostgreSQL (9.2.4) i mam problem z przywróceniem ustawień z Rails 3.2.11. Zrobiłem:Postgres on Rails FATAL: baza danych nie istnieje

brew install postgresql 
initdb /usr/local/var/postgres 
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 

Więc teraz mam

$ psql --version 
psql (PostgreSQL) 9.2.4 
$ which psql 
/usr/local/bin/psql 

Mój plik database.yml wygląda

development: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_development 
    pool: 5 
    username: Tyler 
    password: 
    host: localhost 
    port: 5432 

A kiedy biegnę rake db:create:allrake db:migrate I wtedy pojawia się błąd:

PG::Error: ERROR: relation "posts" does not exist 
LINE 5:    WHERE a.attrelid = '"posts"'::regclass 
            ^
:   SELECT a.attname, format_type(a.atttypid, a.atttypmod), 
       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod 
      FROM pg_attribute a LEFT JOIN pg_attrdef d 
      ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
     WHERE a.attrelid = '"posts"'::regclass 
      AND a.attnum > 0 AND NOT a.attisdropped 
     ORDER BY a.attnum 

Próbowałem usunąć wszystko, co było związane z przeszłością bazy danych, migracjami itp.

Usunąłem plik schema.rb, seed.rb i wszystkie pliki w folderze migracji i wszystko inne, co mogę wymyślić. Ale błąd odnoszący się do "postów" sprawia, że ​​myślę, że wciąż jest jakieś stare odniesienie do mojej wcześniejszej bazy danych (która miała tabelkę zwaną "posty").

Czy ktoś wie, jak rozwiązać ten problem podczas próby ponownej instalacji/odświeżenia mojej bazy danych?

+0

Wygląda na to, że twoje pliki migracji nie są spójne. Czy na pewno tworzysz "posty" przed odniesieniem do niego? – iltempo

+0

Próbowałem umieszczać tylko pierwszy plik migracji w folderze migracji (który nie odwołuje się do wpisów w dowolnym miejscu) i nadal mam problem. Próbowałem również usunąć WSZYSTKIE pliki migracji, a nadal otrzymuję komunikat ... – tyler

+0

Czy "rake db: drop: all' help? – iltempo

Odpowiedz

53

Miałem podobny problem. Sprawdziłem różne witryny internetowe i wypróbowałem to, co zasugerowali, ale nie sprawdzili. Potem próbowałem tego, co sugerowałeś. rake db:create:all i rake db:migrate to zadziałało dla mnie. Dziękuję Ci!

+0

pracował jak czar !!Byłem sfrustrowany: D, dzięki stary, – userRandom

+2

to nie działało dla mnie, dopóki nie dodaję pakietu exec. 'bundle exec rake db: create: all'. Dzięki! – acrogenesis

3

Najpierw należy utworzyć bazy danych. Uruchom polecenie rake db: create: all

Upewnij się także, że plik yml jest poprawnie skonfigurowany dla PostgreSQL.

2

db:create:all i db:migrate nie działały dla mnie jako pierwsze. zmieniłem nazwę bazy danych z development.pg do developmentpg w myapp/config/database.yml pliku:

database: db/developmentpg

a następnie rake db:create:all i rake db:migrate, pracował dla mnie.

Dziękuję

0

Próbowałem uruchomiony rake db: create: wszystko, co nie działa. Jednak działa pakiet exec rake db: create: all pracował dla mnie.

Mam nadzieję, że to pomoże!

Powiązane problemy