2016-01-31 22 views
9

Próbuję rozpocząć pracę z Laravel + PostgreSQL i śledzić kod database tutorial.Laravel 5 + PostgreSQL: "Baza danych [postgres] nie jest skonfigurowana." Błąd

Niestety po aktualizacji pliku konfiguracyjnego bazy danych i działa php artisan migrate, pojawia się następujący błąd:

[InvalidArgumentException] 
    Database [postgres] not configured. 

Co mnie zastanawia to to, że nie określił „postgres'owy” bazy danych w konfiguracji, ale inna baza danych Przeszukuję cPanel, powiedz "example_database".


Oto niektóre istotne części mojej konfiguracji /config/database.php:

'default' => env('DB_CONNECTION', 'postgres') 

i wewnątrz macierzy tego samego pliku connections:

'pgsql' => [ 
     'driver' => 'pgsql', 
     'host'  => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'example_database'), // This seems to be ignored 
     'username' => env('DB_USERNAME', 'example_username'), 
     'password' => env('DB_PASSWORD', 'example_password'), 
     'charset' => 'utf8', 
     'prefix' => '', 
     'schema' => 'public' 
    ], 

Rzeczywiste poświadczenia bazy używam pracują idealnie na moim kliencie SQL Workbench, więc wydaje się, że jest to problem z konfiguracją Laravel. Jakieś pomysły? Szukałem przez co najmniej godzinę bez skutku.

Odpowiedz

20

Musisz wprowadzić swoją konfigurację w pliku .env.

Wszystko konfiguracja dokonane zostanie załadowany tylko wtedy, gdy wartości nie są zdefiniowane w .env

Trzeba użyć pgsql zamiast posgress.

DB_CONNECTION=pgsql 
DB_HOST=localhost 
DB_DATABASE=DB_NAME 
DB_USERNAME=USER 
DB_PASSWORD=PW 
+0

Dzięki za wyjaśnienie. Dokonałem zmiany w pliku .env, ale błąd jest taki sam. Czy jest coś jeszcze, czego mi brakuje? –

+0

@FranciscoH. Właśnie zaktualizowałem swoją odpowiedź. zmień nazwę 'postgress' na' pgsql'. – Fiete

+0

Ustawienie 'DB_CONNECTION = pgsql' daje następujący błąd:' could not find driver'. Ustawiłem to jako 'DB_CONNECTION = postgres' oparte na tej odpowiedzi http://stackoverflow.com/a/25336292/1467941 –