Как использовать Flask-Session? Вероятно, проблема определения схемы там

Я использовал эту документацию в качестве руководства. Но после настройки

url = 'postgresql://{0}:{1}@{2}/{3}'.format(database_settings['user'], database_settings['password'], database_settings['host'], database_settings['dbname'])
app.config['SQLALCHEMY_DATABASE_URI'] = url
app.config['SESSION_TYPE'] = 'sqlalchemy'

Я получил ошибку:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "sessions" does not exist
LINE 2: FROM sessions 

Итак, я создал таблицу вручную (psql). Но это ничего не меняет. Я был уверен, что проблема заключается в определении схемы, но я не нахожу способа сделать это. (настроить схему (не для моделей, а для приложения) очень сложно с колбой + sqlalchemy). Я пытался создать orm.session со схемой, но это не помогло. В этот момент я все еще вижу эту проблему. Flask-Session успешно отправляет запрос на проверку session_id в БД, но не находит таблицы сеансов...

Полная ошибка:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "sessions" does not exist
LINE 2: FROM sessions 
             ^
     [SQL: 'SELECT sessions.id AS sessions_id, sessions.session_id AS sessions_session_id, sessions.data AS sessions_data, sessions.expiry AS sessions_expiry \nFROM sessions \nWHERE sessions.session_id = %(session_id_1)s \n LIMIT %(param_1)s'] [parameters: {'param_1': 1, 'session_id_1': 'session:2d3cfe3f-acd9-42e8-998d-aa7111704db3'}] 

init_app.py:

from flask import Flask
from flask_session import Session
from flask_sqlalchemy import SQLAlchemy

from dev.config import database_settings


class AppObjectsInit(object):
    _instance = None

    def __new__(cls):
        if not isinstance(cls._instance, cls):
            cls._instance = object.__new__(cls)
            cls._instance.__init_app()
        return cls._instance

    def __init__(self):
        pass

    def __init_app(self):
        self.__app = Flask(__name__)
        url = 'postgresql://{0}:{1}@{2}/{3}'.format(database_settings['user'], database_settings['password'], database_settings['host'], database_settings['dbname'])
        self.__app.config['SQLALCHEMY_DATABASE_URI'] = url
        self.__app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
        self.__db = SQLAlchemy(self.__app)
        self.__app.config['SESSION_TYPE'] = 'sqlalchemy'
        Session(self.__app)

Мое приложение работает правильно с другими таблицами в моей схеме. Но для каждой модели я установил

__table_args__ = {'schema': 'my_schema'}

0 ответов

Другие вопросы по тегам