如何在SQLAlchemy中为所有表设置公共前缀

2024-04-26 23:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有一种方法可以插入SQLAlchemy将common prefix添加到所有列中,是否可以将一个common prefix添加到从singledeclarative_base派生的所有表名中?在


Tags: 方法baseprefixsqlalchemycommonsingledeclarative
1条回答
网友
1楼 · 发布于 2024-04-26 23:30:18

使用^{}和自定义的Base,大致如下:

from sqlalchemy.ext.declarative import declared_attr

class PrefixerBase(Base):

    __abstract__ = True

    _the_prefix = 'someprefix_'

    @declared_attr
    def __tablename__(cls):
        return cls._the_prefix + cls.__incomplete_tablename__


class SomeModel(PrefixerBase):

    __incomplete_tablename__ = 'sometable'
    ...

^{}标记的类不会创建表或映射器,可以充当扩展声明基。在

您还可以使用自定义元类(originally described here)使其更加隐式:

^{pr2}$

相关问题 更多 >