Questo asserisce sempre passare o no? In altre parole, SQLAlchemy salva l'ordine (durante la generazione di query INSERT) quando si aggiungono nuovi oggetti alla sessione?SQLAlchemy salva l'ordine nell'aggiunta di oggetti alla sessione?
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)
Nessuno, in produzione sto utilizzando postgresql, sqlite è per il test.
Non riesco a trovare il codice in sqlalchemy che fa sì che questo sia così (il suo 'dict's e' set's in molti posti) né posso produrre un controesempio convincente (a corto della non-monotonicità nella sequenza), e quindi +1 – SingleNegationElimination