destroydb - 既存のデータベースを削除します
destroydb [ -i] [ -a system][ -h host][ -p port][dbname]
destroydbは既存のデータベースを削除します。このコマンドを実行するには、そのユーザはデータベース管理者、あるいはこのデータベースの DBA でなくてはなりません。プログラムは静かに実行します。つまり、何の確認メッセージも表示されません。データベースが削除された後には、Unix のシェルプロンプトが戻ります。
destroydbはpsqlを呼び出すシェルスクリプトです。ですから、createdb が実行される前に、postmasterプロセスがデータベースサーバのホストで走っていなくてはなりません。加えて環境変数 PGOPTION と PGREALM がpsqlに渡され、psql(1) で説明されるように処理されます。
オプション引数のdbnameは削除されるデータベースの名前を指定します。このデータベースと関連したファイルがあるディレクトリを含む、関連するすべての参照が削除されます。dbnameはデフォルトでは環境変数 USER の値となります。
destroydbは次のコマンドラインオプションを取ることができます:
データベースを削除する前にプロンプトを出します。(対話的)
postmasterプロセスへの接続に使われる認証システムsystem(pgintro(1) を見てください)を指定します。このオプションはもう何の効果もありません。
postmasterが走っているマシンのホスト名を指定します。デフォルトではローカルの Unix ドメインソケットを使用します。
postmasterが接続を待っているインターネット TCP/IP ポートまたはローカルの Unix ドメインソケットファイルの拡張子を指定します。デフォルトでは 5432 もしくは、環境変数 PGPORT の値になります(もしセットされていれば)。
# demo データベースを削除します
destroydb demo
# ホスト eden のポート 5000 番の postmaster を使って
# demo データベースを削除します
destroydb -p 5000 -h eden demo
destroydb(l) ,createdb(1) ,initdb(1) ,psql(1) .postmaster(1) .
createdbは指定されたホストとポートでpostmaster プロセスと接続することができませんでした。このメッセージを見たら、postmasterが指定した適当なホストとポートで走っているかどうか確認してください。もしあなたのサイトが認証システムを使っているのでしたら、必要とされる認証証明書を得ることができたかどうか確認してください。
あなたは "pg_user" リレーションに有効なエントリがありませんので、Postgres で何もすることができません。Postgres のサイト管理者に連絡をしてください。
データベースを削除する権利がありません。Postgres のサイト管理者に連絡をしてください。
削除するデータベースは"pg_database"クラスにエントリがありません。
あなたは指定されたデータベースの DBA ではありません。
内部エラーがpsqlまたはバックエンドサーバに起こりました。Postgres のサイト管理者に連絡をして、そのデータベースに関連するファイルとデータベースのエントリが完全に削除されたかどうか確認したください。