0

最新の本番ダンプを使用してデータベースを作成するタスクを自動化する python スクリプトを作成しようとしています。私は目的のためにpsychopg2を使用しています。

しかし、新しいデータベースを作成した後、以前に使用したデータベースを削除したいと考えています。私の考えは、リスト内のデータベースの名前を取得して並べ替えることができれば、不要なデータベースを簡単に削除できるというものです。

だから、私の質問は次のとおりです。リスト内のDBの名前を取得するにはどうすればよいですか。

ありがとう

4

2 に答える 2

1

psql -E -U postgres -c "\l"

上記のコマンドの出力は次のようになります

********* QUERY **********
SELECT d.datname as "Name",
       pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
       d.datcollate as "Collate",
       d.datctype as "Ctype",
       pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges"
FROM pg_catalog.pg_database d
ORDER BY 1;
**************************

                              List of databases
     Name     |  Owner   | Encoding | Collate | Ctype |   Access privileges   
--------------+----------+----------+---------+-------+-----------------------
 mickey       | postgres | UTF8     | C       | C     | 
 mickeylite   | postgres | UTF8     | C       | C     | 
 postgres     | postgres | UTF8     | C       | C     | 
 template0    | postgres | UTF8     | C       | C     | =c/postgres          +
              |          |          |         |       | postgres=CTc/postgres
 template1    | postgres | UTF8     | C       | C     | =c/postgres          +
              |          |          |         |       | postgres=CTc/postgres
(5 rows)
于 2013-10-30T12:48:57.447 に答える