【问题标题】:Table in mysql for pyramid_beaker sessionmysql中用于pyramid_beaker会话的表
【发布时间】:2017-02-24 20:53:17
【问题描述】:

需要在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

因为它没有给出任何线索。

【问题讨论】:

    标签: mysql pyramid beaker


    【解决方案1】:

    如果在第一次调用时尚未创建表,Beaker 将自行创建表。

    您可以在the ext/database.py source file 中查看代码(以及它将创建的列)

    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
            ):
    

    【讨论】:

    • @user6813858 使用 ext:database 后端需要使用 sqlalchemy。这就是它在内部使用的。见line 29-31。但是它不会影响应用程序中的任何其他内容,但需要安装 sqlalchemy。
    • 还有其他办法吗?
    • @user6813858 如果要使用现有的 ext:database,它会在内部使用 SQLAlchemy。您不必对此有任何关注。如果您想使用另一个 DB 抽象层,则必须为您要使用的抽象层重新实现 ext:database-driver(或找到现有的)。如果没有您实际描述问题所在,就不可能说出来。
    • 我正在使用 mysql,我不使用任何 ORM。所以我不想安装 sqlalchemy。我该怎么做?
    • 然后您必须编写自己的 ext:database 版本,使用您的抽象层而不是 SQLa,或者在网络上搜索以找到这样做的人。 ext:database 使用 SQLAlchemy,如果您不想安装 alchemy 以便 ext:database 可以工作,则必须使用其他东西。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多