PostgreSQL: MySQL の SHOW CREATE DATABASE の代わりになるもの
私の知る限りにおいて、PostgreSQL のコンソールであるデータベースの CREATE DATABASE 文を知る方法はない。すなわち、MySQL コンソールの SHOW CREATE DATABASE コマンドに対応するコマンドはない。
しかし、代わりに次のようなコマンドを実行すればよい:
sudo -u postgres pg_dump --schema-only --create db0 \ | grep "CREATE DATABASE"
あるいは、もっと簡潔に
sudo -u postgres pg_dump -s -C db0 | grep "CREATE DATABASE"
ただし、db0 はデータベース名の例であるので、適宜変更する。
pg_dump はデータベースをダンプするコマンドである。--schema-only または -s オプションを付けると、テーブルやインデックスなどの「スキーマ定義」だけがダンプされる。--create オプションまたは -C オプションを付けると、ダンプの中に CREATE DATABASE 文が書き込まれる。それを grep コマンドで抜き出している。
結果として、ターミナルには次のような結果が出力される。
CREATE DATABASE db0 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8';