Non riesco a trovare molto sull'utilizzo dei tipi di intervallo Postgres in SQLAlchemy diverso da this. Qualcuno sa come inserire nuovi valori di colonna in una colonna numrange? Qualcuno ha qualche frammento di codice o più documentazione di quello che ho già trovato?Come utilizzare intervallo numerico postgres con SQLAlchemy
5
A
risposta
5
Questo è stato aggiunto alla documentazione ufficiale: https://bitbucket.org/zzzeek/sqlalchemy/issue/3046/postgresql-range-types-need-better
dovuto scavare in giro per questo, ma in caso di dubbio, controllare i test! Il SQLAlchemy tests for the range types utilizza il sottostante psycopg2 types.
from psycopg2.extras import NumericRange
from sqlalchemy import create_engine, Column, Integer
from sqlalchemy.dialects.postgresql import INT4RANGE
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine('postgresql:///example', echo=True)
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base(bind=engine)
class Example(Base):
__tablename__ = 'example'
id = Column(Integer, primary_key=True)
window = Column(INT4RANGE, nullable=False)
Base.metadata.create_all()
session.add(Example(window=NumericRange(2, 6)))
session.add(Example(window=NumericRange(4, 8)))
session.commit()