【发布时间】:2012-04-26 14:45:57
【问题描述】:
这个断言是否总是通过?换句话说,SQLAlchemy 在将新对象添加到会话时是否保存顺序(在生成 INSERT 查询时)?
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import sessionmaker
from sqlalchemy.engine import create_engine
from sqlalchemy.types import Integer
from sqlalchemy.schema import Column
engine = create_engine('sqlite://')
Base = declarative_base(engine)
Session = sessionmaker(bind=engine)
session = Session()
class Entity(Base):
__tablename__ = 'entity'
id = Column(Integer(), primary_key=True)
Entity.__table__.create(checkfirst=True)
first = Entity()
session.add(first)
second = Entity()
session.add(second)
session.commit()
assert second.id > first.id
print(first.id, second.id)
没有,在生产中我使用的是 postgresql,sqlite 用于测试。
【问题讨论】:
-
我既不能在 sqlalchemy 中找到导致这种情况的代码(在很多地方都有
dicts 和sets),我也不能提出一个引人注目的反例(没有- 序列中的单调性),所以 +1
标签: python database orm sqlalchemy