実現したいこと
Postgresqlにcsvデータをインポートしたいです。
前提
DjangoでWebアプリを作成しています。
AWS EC2上にpostgresqlをインストールしました。
home/user名/xxx.csvを配置しました。
psqlコマンドでpostgresqlに接続し、以下を入力しました。
postgres-# \copy table_name from 'home/user名/xxx.csv' with csv;
すると下記エラーメッセージが表示されました。
home/user名/xxx.csv: 許可がありません
試したこと
sudo chmod 600 xxx.csvでuser名の権限を付与
postgresqlを再起動して再度/copyコマンドを実行。上記のエラー。
sudo chown postgres:postgres xxx.csvでファイルオーナーをpostgresに変更し、postgresqlを再起動して再度/copyコマンドを実行。上記のエラー。
補足情報(FW/ツールのバージョンなど)
postgresql15
そのcopyコマンド実行ユーザーはスーパーユーザーなのでしょうか。
あと、相対パスで指定しているのはどのような意図がありますか?絶対パスにした場合はどうでしょうか
ご連絡頂きありがとうございます。
\copyコマンド実行ユーザはpostgresです。
postgres | スーパーユーザー, ロール作成可, DB作成可, レプリケーション可, RLS
バイパス | {}
上記のようにスーパーユーザーであることを確認いたしました。
一方、テーブルの所有者ならびに、xxx.csvの所有者は"user名"です。
\copyコマンドは、絶対パスを記載する必要があると下記に記載あったため、絶対パスで記載しております。
https://tech.pscsrv.co.jp/2020/05/08/%E3%80%90postgresql%E3%80%91%E4%B8%80%E6%8B%AC%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%85%A5%E5%87%BA%E5%8A%9B%E3%81%A7%E3%81%8D%E3%82%8Bcopy%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/
'user名'にスーパーユーザーの権限を与え、'user名'としてdbに接続、\copy table_name from 'home/user名/xxx.csv' with csv;を実行しましたが、同じく、home/user名/xxx.csv: 許可がありませんが表示されました。
回答2件
あなたの回答
tips
プレビュー