Necesito cambiar el nombre de la base de datos, pero cuando lo hago
PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"
me dice que no puede.
¿Cómo puedo hacerlo?
( Versión 8.3 en WindowsXP )
Actualizar
El primer mensaje de error: No se puede porque estaba conectado a él. Así que seleccioné otra base de datos e hice las consultas.
Recibo un segundo mensaje de error que me dice que el usuario se ha conectado. Veo en la
PGAdmin
pantalla que tiene muchosPID
pero están inactivos ... No veo cómo matarlos.
sql
postgresql
Patrick Desjardins
fuente
fuente
Respuestas:
Intente no citar el nombre de la base de datos:
También asegúrese de que no haya otros clientes conectados a la base de datos en ese momento. Por último, intente publicar el mensaje de error que devuelve para que podamos obtener un poco más de información.
fuente
.
o@
.-
Para futuras referencias, debería poder:
Tenga en cuenta que la
pg_stat_activity
columna de la tablapid
fue nombrada comoprocpid
en versiones anteriores a 9.2. Entonces, si su versión de PostgreSQL es inferior a 9.2, use enprocpid
lugar depid
.fuente
PostgreSQL 9.3.5 on x86_64-apple-darwin, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00), 64-bit
)Me encontré con esto y a continuación es lo que funcionó:
1)
pgAdmin
es una de las sesiones. Usar en supsql
lugar.2) Detenga los
pgBouncer
servicios de planificador en Windows, ya que también crean sesionesfuente
Unexist me dijo en un comentario que reiniciara la base de datos y ¡funciona! Reiniciar la base de datos elimina todas las conexiones existentes y luego me conecto a otra base de datos y pude cambiarle el nombre con mi consulta inicial.
Gracias a todos.
fuente
En lugar de implementar una bomba nuclear (reiniciar el servidor), debe intentar cerrar las conexiones que le molestan, ya sea buscando de dónde son y cerrando los procesos del cliente o utilizando la
pg_cancel_backend()
función.fuente
Para cualquiera que se encuentre con este problema usando DBeaver y obtenga un mensaje de error como este:
Desconecte su conexión actual y vuelva a conectarse al mismo servidor con una conexión que no esté dirigida a la base de datos que está cambiando de nombre.
Cambiar la base de datos activa no es suficiente.
fuente