2014-05-09 2 views

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()