Il messaggio di errore che hai non c'è un motivo per riavviare il database; non è un problema di database. La tua applicazione contiene troppe connessioni, probabilmente perché hai dimenticato di configurare il relativo pool di connessioni. Questo non è un problema del server DB e puoi risolverlo senza riavviare il server DB.
Se interrompi l'applicazione Play o riconfiguri il pool di connessioni, il problema scompare.
Un'altra opzione è mettere la tua istanza Heroku in modalità di manutenzione, quindi estrarla di nuovo.
Poiché heroku non ti consente di connetterti come superutente (per buoni motivi) non puoi usare quello slot riservato per superutente per connetterti e gestire le connessioni come faresti con PostgreSQL normale.
Vedi anche:
http://wiki.postgresql.org/wiki/Number_Of_Database_Connections
Se sei un utente non heroku che ha trovato questo:
Con PostgreSQL normale puoi disconnettere il tuo client dal lato server usando una connessione PostgreSQL al tuo server. Vedi come dice che c'è uno slot riservato per "connessioni superutente"? Collegati a Pg come superutente (postgres
utente per impostazione predefinita) utilizzando PgAdmin-III o psql
.
Una volta connesso puoi vedere altri client con:
SELECT * FROM pg_stat_activity;
Se vuoi terminare ogni connessione tranne la tua puoi eseguire:
SELECT procpid, pg_terminate_backend(procpid)
FROM pg_stat_activity WHERE procpid <> pg_backend_pid();
Aggiungi AND datname = current_database
e/o AND usename = <target-user-name>
a seconda dei casi.