如果格式不正确,我会提前道歉;这对我来说已经很晚了。
基本上,我正在使用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,它不存在。这里有什么东西我不见了吗?
提前感谢所有答案。
答案 0 :(得分:4)
至少从SQL Alchemy 0.6开始,这一点得到了支持。正如评论中所指出的,实际问题是一个太旧的版本。