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

;の後にaを入力しましたDROP DATABASE test_dbか?PostgreSQLはコマンドへの応答を出力しましたか?

于 2012-01-28T10:38:10.507 に答える
3

データベースとしてPostgreSQLを使用してUbuntu 20.04Rails 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 に答える