Basics

createuser

ユーザ作成は postgres ユーザで行い、データベースのみを作成できるユーザを作成しておくとよいでしょう。

% su - postgres
% createuser dev
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE

createdb

% su - postgres
% createdb -U dev (データベース名)
CREATE DATABASE

pg_hba.conf での設定が ident sameuser となっていると、同名のOSユーザが存在しなければ作成できません。ポリシーに応じて trustpassword 等に変更します。

psql

ログイン:

#
# -W : パスワード認証を要求
# -U : ユーザ名
# -d : データベース名。オプションでなく最後の引数としても指定可
#
% psql -W -U (ユーザ名) -d (データベース名)
Password for user dev:
....

SELECT 結果を CSV 形式で出力:

#
# -A : 位置揃え無しの出力モード
# -F : 区切り文字
#
% echo "SELECT * FROM emp LIMIT 5" | psql -A -F "," ...

pg_dump

#
# -O : 所有権を元のデータベースに一致させるためのコマンドを出力しない
# -x : アクセス権限のダンプを抑制
# -s : テーブル定義のみをダンプ
#
% pg_dump -O -x -U dev (データベース名) > dump.sql

SQL ダンプからのレストアは psql コマンド経由で行います。

# シェルからの入力リダイレクトの場合は、手入力を行った場合と同等です。
% psql .... -d (データベース名) < dump.sql

# -f オプションでのファイル名指定であれば、行番号付でエラーメッセージが確認できます。
% psql .... -d (データベース名) -f dump.sql