SQLAlchemy中的BigInteger与否?

时间:2011-03-19 04:55:29

标签: python postgresql sqlalchemy biginteger

如果格式不正确,我会提前道歉;这对我来说已经很晚了。

基本上,我正在使用Python和SQLAlchemy。我正在尝试使用Object Relational Mapper, declarative style将类映射到PostgreSQL数据库表。

根据SQLAlchemy's documentation on data types,我应该能够使用类型BigInteger来表示数据库中可能存在的大整数,特别是因为我知道PostgreSQL supports the BIGINT data type

所以,我试图像我这样宣布我的课程:

import sqlalchemy
from sqlalchemy import Column, BigInteger, Text, Sequence, Boolean
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Account(Base):
    __tablename__ = 'accounts'
    __metadata__ = Base.metadata

    id = Column(BigInteger, Sequence('id_seq'), unique=True, nullable=False)
    email = Column(Text(32), unique=True, nullable=False)

    def __init__(self, email):
        self.email = email

然而,当我尝试使用这个文件时,我受到以下欢迎:

Traceback (most recent call last):
  File "sqltest02.py", line 9, in <module>
     from account import Account
  File "/home/pdusen/prog/account.py", line 2, in <module>
    from sqlalchemy import Column, BigInteger, Text, Sequence, Boolean
ImportError: cannot import name BigInteger

因此,根据SQLAlchemy的文档,BigInteger类型存在,但根据python,它不存在。这里有什么东西我不见了吗?

提前感谢所有答案。

1 个答案:

答案 0 :(得分:4)

至少从SQL Alchemy 0.6开始,这一点得到了支持。正如评论中所指出的,实际问题是一个太旧的版本。