39

我是 PostgreSQL 的新手,我试图理解它。我对 db 和 MySQL 很熟悉。

我正在尝试删除我创建的数据库,因为 psql 似乎忽略了我尝试通过 Django 推送的更改。

当我执行时,\l我得到以下响应:

                                  List of databases
       Name       | Owner  | Encoding |   Collate   |    Ctype    | Access privileges 
------------------+--------+----------+-------------+-------------+-------------------
 postgres         | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
 test_db          | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
 template0        | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | =c/neurix        +
                  |        |          |             |             | neurix=CTc/neurix
 template1        | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | =c/neurix        +
                  |        |          |             |             | neurix=CTc/neurix
 template_postgis | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
(5 rows)

现在我想删除数据库“test_db”

DROP DATABASE test_db

但是当我\l之后执行时,表格仍然存在,并且概述看起来像。

4

2 回答 2

104

你在;后面输入了一个DROP DATABASE test_db吗?PostgreSQL 是否打印了对您的命令的响应?

于 2012-01-28T10:38:10.507 回答
3

在Ubuntu 20.04中使用PostgreSQL作为我的数据库的Rails 6应用程序时,我遇到了类似的问题。

当我运行命令时:

DROP DATABASE my-db;

数据库已成功删除,但仍保留数据库的架构。

所以当我运行命令时:

CREATE DATABASE my-db;

我检查了新创建的数据库中的表,我意识到它们仍然包含与以前删除的数据库相同的表,即使我没有运行任何迁移。

这是我修复它的方法

而不是运行命令:

DROP DATABASE my-db;

运行命令:

DROP DATABASE IF EXISTS my-db;

这将删除数据库及其相应的架构。

就这样。

我希望这有帮助

于 2020-10-14T11:00:17.950 回答