2015-02-16 5 views
6

में पोस्टग्रेस बहिष्करण बाधाओं के साथ कैसे काम करें, क्या शाब्दिक एसक्यूएल लिखने के बिना अलेम्बिक में पोस्टग्रेस्क्ल बहिष्करण बाधा के साथ एक टेबल बनाने का कोई तरीका है?एलेम्बिक

पर विचार करें, उदाहरण के लिए, इस तालिका:

CREATE TABLE reservation (
during tsrange, 
EXCLUDE USING gist (during WITH &&) 
); 

बहिष्करण की कमी भबका में उपलब्ध बाधा प्रकार के बीच के बीच होने के लिए नहीं है।

SQLAlchemy के रूप में ExcludeConstraints

from sqlalchemy.dialects.postgresql import ExcludeConstraint, TSRANGE 

class RoomBooking(Base): 

    __tablename__ = 'room_booking' 

    room = Column(Integer(), primary_key=True) 
    during = Column(TSRANGE()) 

    __table_args__ = (
     ExcludeConstraint(('room', '='), ('during', '&&')), 
    ) 

का समर्थन करता है लेकिन भबका उन्हें पहचान है, अगर वहाँ मेरी स्कीमा संशोधन इतिहास में इस तरह के बहिष्कार की कमी को प्रतिबिंबित करने के अन्य तरीके हैं मैं सोच रहा हूँ नहीं लगता है।

उत्तर

5

एक ही समस्या में भागो। भबका में समाधान:

from sqlalchemy.dialects.postgresql import ExcludeConstraint 

op.create_table('mission_event_schedule', 
        sa.Column('id', sa.Integer(), nullable=False), 
        sa.Column('ts_range', postgresql.TSTZRANGE(), nullable=True), 
        sa.PrimaryKeyConstraint('id'), 
        ExcludeConstraint(('ts_range','&&')) 
        ) 
:

आप स्क्रिप्ट के शीर्ष पर बहिष्कार बाधा आयात करने की आवश्यकता

संबंधित मुद्दे