きっかけ
psql でマニュアルでオペレーションした場合は、記録のため Github のイシューやその他のドキュメントにコンソールの結果をそのまま貼り付けることがよくある。が、しかし、いつやったの? という情報は含まれていないため思い出しながら記録することになる。
これが面倒だ。psql のプロンプトにそのままタイムスタンプを表示したい。
方法
.psqlrc
にこう書けばいい(1行目に注目)
\set PROMPT1 '%[%033[1m%]%M %n@%/ %`date`\n%R%x%#%[%033[0m%] '
\set PROMPT2 '%R%x%# '
\pset border 1
\pset format wrapped
\pset linestyle unicode
\pset null <NULL>
\x auto
\set COMP_KEYWORD_CASE upper
プロンプトの変数において、%`command`
という書き方ができるのだ。command はシェルのコマンドだ。
なのでもちろん、date "+%Y/%m/%d-%H:%M:%S"
のようにフォーマットすることも可能だ(ぼくはしないけど)
実際の出力はこんな感じ
[~]$ psql
境界線のスタイルは 1 です。
出力フォーマットは wrapped です。
境界線のスタイルは unicode です。
Null 表示は "<NULL>" です。
拡張表示が自動的に使用されます
psql (9.3.9)
"help" でヘルプを表示します.
[local] vagrant@vagrant 2015年 10月 20日 火曜日 14:26:56 JST
=#
[local] vagrant@vagrant 2015年 10月 20日 火曜日 14:26:56 JST
=#
[local] vagrant@vagrant 2015年 10月 20日 火曜日 14:26:57 JST
=#
[local] vagrant@vagrant 2015年 10月 20日 火曜日 14:26:58 JST
=#