【发布时间】:2018-09-24 18:16:08
【问题描述】:
我们以简单的 SQLAlchemy 模型为例:
class Organization(Base):
__tablename__ = 'organization'
id = Column(Integer, primary_key=True)
# ... and so on...
在这种情况下,当在 PostgreSQL 上时,由于 id 是主键,因此该模型将创建一个名为 organization_id_seq 的序列器。
是否有可能以某种方式从该定序器为 (Organization.id) 或Organization 类本身创建的字段中提取此自动生成的定序器名称(或其他定序器详细信息)?或者也许唯一的方法是“手动”在数据库中检查它?
动机不是在音序器重置实用程序中硬编码音序器名称,我们在某些测试中使用的团队。
【问题讨论】:
-
自动创建的主键序列总是由表名、列名和
seq后缀组成,下划线分隔。 -
谢谢,这会让事情变得简单。无论 Postgres 版本如何,人们都认为这是理所当然的事情,还是只是一些可能会发生变化的实现细节?
-
嗯,我与 Postges 合作多年,一直都是这样。我看不出有人想改变它的任何理由。但另一方面,据我所知,它没有正式记录
-
很高兴知道。谢谢。
标签: python postgresql orm sqlalchemy