2015-01-13 12 views
5

erstellen Ich habe ein Projekt in Symfony2 mit Doktrin. In einem Moment verlieren i Fähigkeit/Drop-Datenbanken erstellen über eine Konsole wieKann keine Postgres-Datenbank mit Doctrine

Befehle
app/console doctrine:database:drop --force 
app/console doctrine:database:create 
app/console doctrine:schema:update --force 

Wenn i-Datenbank erstellen attemp, Lehre nächste Fehler geben Sie mir:

[Doctrine\DBAL\Exception\ConnectionException]              
    An exception occured in driver: SQLSTATE[08006] [7] FATAL: database "motherhood" does not exist 

Also, i Datenbank in psql erstellen mit Benutzer, geschrieben in symfony config. Wenn ich versuche, über Lehre bestehende Datenbank zu löschen, gibt es mir diese:

SQLSTATE[55006]: Object in use: 7 ERROR: database "motherhood" is being accessed by other users 
DETAIL: There are 1 other session using the database. 

Aber es gibt keine Verbindung zu dieser Datenbank

+1

den gleichen Fehler selbst bekommen. doctrine ignoriert den config-Parameter für datenbankname: und sagt mir, dass eine Datenbank mit dem Namen database_user: aus der config nicht existiert, wenn ich Ihre app/console doctrine mag: datenbank: create. Nun, natürlich existiert das nicht, die existierende Datenbank ist diejenige, die durch Datenbankname nicht Datenbankbenutzer angegeben ist. sehr frustrierend für neue Symfony-Nutzer – sdjuan

Antwort

-1

Die schnelle Lösung für das Problem, eine Datenbank mit dem gleichen Namen zu erstellen, ist als Benutzer, der den Befehl ausführt, da PostgreSQL selbst dann eine Verbindung zu einer Datenbank herstellen muss, wenn er eine neue erstellt.

Der Fehler beim Löschen der Datenbank sollte in DoctrineBundle 1.4 behoben werden.

Der Fehler beim Erstellen der Datenbank wird in der nächsten Version (2.5.2) in Doktrin/Dbal behoben, wie hier erwähnt: https://github.com/doctrine/DoctrineBundle/issues/402. Das Problem wird behoben, indem immer eine Verbindung zur Vorlagen-Datenbank hergestellt wird, die nicht gelöscht werden kann.