ローカル(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 ユーザー情報確認コード
-
sudo -u postgres psql postgres
-
\du
Postgresql ユーザーにスーパー権限を足すコード
-
sudo -u postgres psql postgres
-
\du
-
alter user ユーザー名 with superuser;
-
\du
再ログイン
-
sudo -u ユーザー名 psql postgres
-
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?')