くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

PostgreSQLでDBをコピーする方法

f:id:mask0702:20150701135528p:plain

PostgreSQLでDBをコピーしたので手順をシェア。

基本的に

$ createdb -T [コピー元のDB名] [コピー後のDB名] -U postgres

で作れる。(権限によってはsudo必要かも)

参照記事takuya-1st.hatenablog.jp


が、自分の場合

$ createdb: データベースの生成に失敗しました:ERROR:  source database "[コピー元のDB]" is being accessed by other users

というエラーが出た。誰かがコピー元のDBにログインしてるっぽい。

ps -aux | grep [コピー元のDB名]

でチームの誰が入っているのか調べ、その人に一旦ログアウトしてもらってからさっきのcreatedbコマンドを叩いたら成功した。

参照記事d.hatena.ne.jp



内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)