在SQLAlchemy中使用BigInteger吗?
如果格式不好,我先说声抱歉;现在已经很晚了。
简单来说,我在用Python和SQLAlchemy。我想把一个类映射到PostgreSQL数据库中的一个表,使用的是对象关系映射,声明式风格。
根据SQLAlchemy关于数据类型的文档,我应该可以使用BigInteger
类型来表示数据库中可能很大的整数,特别是因为我知道PostgreSQL支持BIGINT数据类型。
所以,我尝试这样声明我的类:
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 个回答
11
这个功能至少从 SQL Alchemy 0.6 版本开始就支持了。正如评论中提到的,实际的问题是使用的版本太旧了。