Déposer la firebase database postgresql via la ligne de commande

J’essaie de supprimer ma firebase database et d’en créer une nouvelle via la ligne de commande. Je me connecte en utilisant psql -U nom d’utilisateur, puis fais un \ connect template1, suivi d’un nom de firebase database DROP DATABASE;

J’obtiens l’erreur “le nom de la firebase database databasename est accessible par d’autres utilisateurs”. J’ai arrêté Apache et j’ai essayé et j’ai toujours cette erreur. Est-ce que je fais quelque chose de mal?

Vous pouvez exécuter la commande dropdb à partir de la ligne de commande:

 dropdb 'database name' 

Notez que vous devez être un superutilisateur ou le propriétaire de la firebase database pour pouvoir le déposer.

Vous pouvez également consulter la vue pg_stat_activity pour voir quel type d’activité se déroule actuellement dans votre firebase database, y compris tous les processus inactifs.

 SELECT * FROM pg_stat_activity WHERE datname='database name'; 

Cela a fonctionné pour moi:

 select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase'; 

pour postgresql plus tôt que 9.2 remplacer pid par procpid

 DROP DATABASE "YourDatabase"; 

http://blog.gahooa.com/2010/11/03/how-to-force-drop-a-postgresql-database-by-killing-off-connection-processes/

Essaye ça. Notez qu’il n’y a pas de firebase database spécifiée – elle s’exécute simplement “sur le serveur”

 psql -U postgres -c "drop database databasename" 

Si cela ne fonctionne pas, j’ai vu un problème avec postgres sur des déclarations préparées orphelines.
Pour les nettoyer, procédez comme suit:

 SELECT * FROM pg_prepared_xacts; 

alors pour chaque identifiant que vous voyez, lancez ceci:

 ROLLBACK PREPARED ''; 

Quand il dit que les utilisateurs sont connectés, qu’est-ce que la requête “select * from pg_stat_activity;” dire? Les autres utilisateurs à part vous-même sont-ils maintenant connectés? Si tel est le cas, vous devrez peut-être modifier votre fichier pg_hba.conf pour rejeter les connexions des autres utilisateurs ou arrêter l’application qui accède à la firebase database pg pour pouvoir la supprimer. J’ai ce problème à l’occasion dans la production. Définissez pg_hba.conf comme suit:

 local all all ident host all all 127.0.0.1/32 reject 

et dire à pgsql de recharger ou de redémarrer (par exemple, sudo /etc/init.d/postgresql reload ou pg_ctl reload) et maintenant, le seul moyen de se connecter à votre machine est via les sockets locaux. Je suppose que vous êtes sur Linux. Si ce n’est pas le cas, il faudra peut-être modifier quelque chose d’autre que local / ident sur cette première ligne, en quelque chose comme host … yourusername.

Maintenant, vous devriez être capable de faire:

 psql postgres drop database mydatabase;