ERROR: la base de datos "dbname" no existe


19

De acuerdo con la documentación, mientras no esté conectado a una base de datos, puedo eliminar una base de datos en la consola usando:

DROP DATABASE dbname;

O puedo soltarlo usando la herramienta de envoltura dropdb.

Ambos me dan un error diciendo que la base de datos no existe, sin embargo, cuando estoy en la consola y escribo el comando \l, obtengo una lista de bases de datos, incluida la que quiero eliminar.

                                          List of databases
           Name            |   Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
---------------------------+-----------+----------+-------------+-------------+-----------------------
 Blog_development          | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 Blog_test                 | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

El nombre de la base de datos es Blog_development (y el que está debajo). Estaba jugando con rieles e intentando aprender de la documentación en línea. Quería comenzar de nuevo y borrar todo.

Sin embargo, cuando intenta eliminarlo, dice que no existe. Soy nuevo en PostgreSQL, así que estoy un poco perdido, no hay nada en la documentación sobre este error aparte de aparecer cuando no existe. Por supuesto que existe, está justo ahí.


2
Por favor, siempre mostrará el, texto exacto completa de los mensajes de error y mostrar su versión de PostgreSQL.
Craig Ringer

Verifique el puerto en el que se ejecuta su DB. Las herramientas como dropdb, createdb, etc. se conectarán por defecto a 5432. Esto me sorprendió cuando mi base de datos se estaba ejecutando en 5433.

Respuestas:


26

Su base de datos se creó con comillas dobles, por lo que su nombre ahora distingue entre mayúsculas y minúsculas. Por lo tanto, ahora debe usar siempre comillas dobles al referirse a él:

drop database "Blog_test";

Puede encontrar más detalles sobre los identificadores entre comillas (el nombre de una base de datos es un identificador como el nombre de una columna o tabla) en el manual:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html # SQL-SYNTAX-IDENTIFIERS


1
mi regla general siempre usa minúsculas :( Tuve este mismo problema.
Chris Hough
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.