Postgresql デプロイ時のエラーハンドリング

Postgresエラーハンドル、ローカルでは無かったのに... デプロイ時に発生!

投稿日:2020/05/29    カテゴリ:Postgres

ローカル(Mac)では発生なく、デプロイ時に出たエラーで、検索してもなかなか答えが見つからなかったものを記録。

デプロイした Web App:テック系のブログ、集めました(自動更新)

 

環境

  • ローカル:Mac Catalina、VPS:Ubuntu 18
  • Python 3.6
  • Django 3.0.6
  • Postgresql  10.12

 

エラー① データベース読み書きできない

psycopg2.errors.InsufficientPrivilege: permission denied for relation feed

 

ネットで検索すると権限の問題でデータベース処理ができない、だから 

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO oshimamasara; 

すればいいじゃん、とありますが うまくいきません。。。

いろいろ調べていく中でどうもユーザー権限が❌な様子。

早速 \du でユーザー情報を確認し、スーパー権限を与えて、この問題はクリア。

スーパー権限を付与後にデータベースを作り直して、うまく処理できました。

 

Postgresql ユーザー情報確認コード

  1. sudo -u postgres psql postgres
  2. \du

 

Postgresql ユーザーにスーパー権限を足すコード

  1. sudo -u postgres psql postgres
  2. \du
  3. alter user ユーザー名 with superuser;
  4. \du

 再ログイン

  1. sudo -u ユーザー名 psql postgres
  2. create database Feed;

 

データーベース(Id serial)だけど連番にならない

無限ループでデータの読み書き、更新を行う中で起きたこと。(この26行目

エラー文

ERROR: duplicate key value violates unique constraint "feed_pkey"

調べると id の連番を確認すれば OK とのこと。

【id数確認】

select MAX(id) FROM テーブル名;

【次の ID は?】

select nextval('テーブル名_id_seq');

【ID 調整】

select setval('feed_id_seq', (select max(id) from feed));

Pythonでかくと、

# id 調整

select_Query = "select setval('テーブル名_id_seq', (select max(id) from テーブル名))"
cur.execute(select_Query)
print('ok?')

 



コメント

コメント数 0

まだコメントはありません