我希望在SQLAlchemy ORM中创建BigInteger Identity列。 文档 没有任何关于ORM Identity或BigInteger Identity的示例。
- 这是可能的吗?我没有看到任何允许指定内部整数类型的Identity类型参数。
- 如何实现此目标?我是否需要创建自定义类型并将其传递到
Mapping[]
括号中?
我希望在SQLAlchemy ORM中创建BigInteger Identity列。 文档 没有任何关于ORM Identity或BigInteger Identity的示例。
Mapping[]
括号中?看起来这样可以工作:
import sqlalchemy as sa
from sqlalchemy.orm import mapped_column, Mapped, DeclarativeBase
class Base(DeclarativeBase):
pass
class Test(Base):
__tablename__ = 't75312537'
id: Mapped[int] = mapped_column(
sa.BigInteger, sa.Identity(), primary_key=True
)
engine = sa.create_engine('postgresql+psycopg2:///test', echo=True)
Base.metadata.drop_all(engine, checkfirst=True)
Base.metadata.create_all(engine)
输出:
CREATE TABLE t75312537 (
id BIGINT GENERATED BY DEFAULT AS IDENTITY,
PRIMARY KEY (id)
)