PostgreSQL – Renommer la firebase database

Je dois renommer la firebase database mais quand je le fais dans PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld" il m’a dit que non.

Comment puis-je le faire?

( Version 8.3 sur WindowsXP )

Mettre à jour

  • Le premier message d’erreur: Impossible parce que j’étais connecté. J’ai donc sélectionné une autre firebase database et fait les requêtes.

  • Je reçois un second message d’erreur indiquant que l’utilisateur s’est connecté. Je vois dans l’écran de PGAdmin qu’il a beaucoup de PID mais qu’ils sont inactifs … Je ne vois pas comment les tuer.

Essayez de ne pas citer le nom de la firebase database:

 ALTER DATABASE people RENAME TO customers; 

Assurez-vous également qu’aucun autre client n’est connecté à la firebase database à ce moment-là. Enfin, essayez de poster le message d’erreur qu’il renvoie afin d’obtenir un peu plus d’informations.

Pour référence future, vous devriez pouvoir:

 -- disconnect from the database to be renamed \c postgres -- force disconnect all other clients from the database to be renamed SELECT pg_terminate_backend( pid ) FROM pg_stat_activity WHERE pid <> pg_backend_pid( ) AND datname = 'name of database'; -- rename the database (it should now have zero clients) ALTER DATABASE "name of database" RENAME TO "new name of database"; 

Notez que le pid table pg_stat_activity été nommé procpid dans les versions antérieures à 9.2. Donc, si votre version de PostgreSQL est inférieure à 9.2, utilisez procpid au lieu de pid .

Je viens juste de tomber sur ce qui suit:

1) pdAdmin est l’une des sessions. Utilisez plutôt psql .
2) Arrêtez les services pgBouncer et / ou scheduler sous Windows car ceux-ci créent également des sessions

Unexiste m’a dit en commentaire de redémarrer la firebase database et ça marche! Le redémarrage de la firebase database supprime toutes les connexions existantes, puis je me connecte à une autre firebase database et j’ai pu la renommer avec ma requête initiale.

Thx tous

Au lieu de déployer une nuke (redémarrer le serveur), vous devriez essayer de fermer les connexions qui vous dérangent en trouvant d’où elles proviennent et en fermant les processus clients ou en utilisant la fonction pg_cancel_backend() .