Таблица в mysql для сеанса pyramid_beaker

#mysql #pyramid #beaker

#mysql #пирамида #стакан

Вопрос:

какие столбцы необходимо определить в mysql для хранения сеанса с использованием pyramid_beaker?

 session.type=ext:database
session.secret=someThingReallyReallySecret
session.cookie_expires=true
session.key=WhatEver
session.url=mysql://user:password@host/database
session.timeout=3000
session.lock_dir=%(here)s/var/lock
 

поскольку это не дает никакой подсказки.

Ответ №1:

Beaker создаст саму таблицу, если она еще не была создана при первом вызове.

Вы можете увидеть код (и столбцы, которые он создаст) в ext/database.py исходный файл

 cache = sa.Table(table_name, meta,
                 sa.Column('id', types.Integer, primary_key=True),
                 sa.Column('namespace', types.String(255), nullable=False),
                 sa.Column('accessed', types.DateTime, nullable=False),
                 sa.Column('created', types.DateTime, nullable=False),
                 sa.Column('data', types.PickleType, nullable=False),
                 sa.UniqueConstraint('namespace'),
                 schema=schema_name if schema_name else meta.schema
        ):
 

Комментарии:

1. @user6813858 Использование серверной части ext:database требует использования sqlalchemy. Это то, что он использует внутри. См. Строку 29-31 . Однако это не влияет ни на что другое в вашем приложении, но требует установки sqlalchemy.

2. есть ли другой способ?

3. @user6813858 Если вы хотите использовать существующую базу данных ext:database, она использует SQLAlchemy внутренне. Вам не нужно обращать на это никакого внимания. Если вы хотите использовать другой уровень абстракции БД, вам придется переопределить ext:database-driver (или найти существующий) для уровня абстракции, который вы хотите использовать. Невозможно сказать, не описав, в чем проблема.

4. я использую mysql, и я не использую никаких ORM.so только для этого я не хочу устанавливать sqlalchemy. как я могу это сделать?

5. Затем вам нужно будет написать свою собственную версию ext:database, которая использует ваш уровень абстракции вместо SQLa, или выполнить поиск в Интернете, чтобы найти кого-то, кто это сделал. ext:database использует SQLAlchemy, и если вы не хотите устанавливать alchemy, чтобы ext:database могла работать, вам придется использовать что-то другое.