Я прочитал более 20 разных вопросов с одной и той же проблемой, и предложенные ответы не решили мою проблему. Я все еще получаю sqlalchemy psycopg2.errors.InsufficientPrivilege: permission denied for relation <<table>>
Среда: EC2, debian 8, postgresql, flask, sqlalchemy мой стол в postgresql:
Create table Members(
id BIGSERIAL PRIMARY KEY,
joinDate TIMESTAMPTZ DEFAULT Now(),
password TEXT NOT NULL
);
прямо в postgresql: INSERT INTO members (password) VALUES('123') RETURNING id;
отлично работает
Я предоставил своему пользователю все возможные разрешения
grant all privileges on database <my_db> to <my_user>
grant all privileges on all table in schema public to <my_user>
grant all privileges on all relations in schema public to <my_user>
Я также создал файл .htaccess
в var/www/html
с Header set Access-Control-Allow-Origin "*"
моя таблица отображена с помощью sqlalchemy member.py
from datetime import datetime
from sqlalchemy import create_engine, Column, String, Integer, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from marshmallow import Schema, fields
from sqlalchemy.schema import UniqueConstraint
import sqlalchemy as sa
Engine = create_engine('postgresql://<my_user>:<my_psw>@<my_db_url>/<my_dn_name>')
Session = sessionmaker(bind=Engine)
Base = declarative_base()
class MemberSchema(Schema):
id = fields.Number()
password = fields.Str()
class Member(Base):
__tablename__ = 'members'
id = Column(Integer, primary_key=True)
password = Column(String)
def __init__(self, password):
self.password = password
кода, получающего POST и выполняющего вставку в test.py
:
from flask import Flask, render_template, request,jsonify
from flask_cors import CORS, cross_origin
import logging
def register_member(password):
session = Session()
newMember = Member(password)
session.add(newMember)
session.commit()
return newMember
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route("/register", methods=["GET", "POST"])
@cross_origin()
def register():
try:
formData = request.form
register_member(formData['password'])
return jsonify({"message":"Regsitrated successfully!"})
except Exception as ex:
logging.debug(ex)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=1234, debug=True)
, при выполнении этого кода получается исключение с этими ошибками
DEBUG:root:(psycopg2.errors.InsufficientPrivilege) permission denied for relation members
[SQL: INSERT INTO members (password) VALUES (%(password)s) RETURNING members.id]
[parameters: {'password': '4444'}]
и
TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
Любая помощь будет оценена