Preciso renomear o banco de dados, mas quando o faço
PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"
me diz que não pode.
Como eu posso fazer isso?
( Versão 8.3 no WindowsXP )
Atualizar
A primeira mensagem de erro: Não é possível porque eu estava conectado a ele. Então, selecionei outro banco de dados e fiz as consultas.
Recebo uma segunda mensagem de erro informando que ele chegou ao usuário. Vejo na
PGAdmin
tela que tem muitos,PID
mas eles estão inativos ... Não vejo como matá-los.
sql
postgresql
Patrick Desjardins
fonte
fonte
Respostas:
Tente não citar o nome do banco de dados:
Verifique também se não há outros clientes conectados ao banco de dados no momento. Por fim, tente postar a mensagem de erro que ela retorna para que possamos obter um pouco mais de informação.
fonte
.
ou@
.-
Para referência futura, você deve ser capaz de:
Observe que a
pg_stat_activity
coluna da tabelapid
foi nomeada comoprocpid
nas versões anteriores à 9.2. Portanto, se sua versão do PostgreSQL for inferior a 9.2, use emprocpid
vez depid
.fonte
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
)Acabei de encontrar isso e abaixo é o que funcionou:
1)
pgAdmin
é uma das sessões. Use empsql
vez disso.2) Interrompa os serviços
pgBouncer
e / ou planejador no Windows, pois eles também criam sessõesfonte
Unexist me disse no comentário para reiniciar o banco de dados e funciona! Reiniciar o banco de dados elimina todas as conexões existentes e, em seguida, conecto-me a outro banco de dados e pude renomeá-lo com minha consulta inicial.
Thx all.
fonte
Em vez de implantar uma bomba nuclear (reiniciando o servidor), tente fechar as conexões que o incomodam, descobrindo de onde elas são e desligando os processos do cliente ou usando a
pg_cancel_backend()
funçãofonte
Para quem está enfrentando esse problema usando o DBeaver e recebendo uma mensagem de erro como esta:
Desconecte sua conexão atual e reconecte-se ao mesmo servidor com uma conexão que não tenha como alvo o banco de dados que você está renomeando.
Alterar o banco de dados ativo não é suficiente.
fonte