#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 могла работать, вам придется использовать что-то другое.