2016-04-27 5 views
10

मैं स्क्लक्लेमी का उपयोग करके एक बहु स्तंभ अद्वितीय बाधा का उपयोग करने का प्रयास कर रहा हूं जिसे अलेम्बिक द्वारा स्वचालित अपग्रेड स्क्रिप्ट जनरेटर में उठाया जाएगा।अलेम्बिक + स्क्लेल्चेमी मल्टी कॉलम अनन्य कंसट्रेंट

मैं बाधा का उपयोग कर बनाने: अपने मॉडल में

SQLAlchemy import UniqueConstraint से

UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3') 

बहरहाल, यह ऊपर भबका द्वारा में यह स्वत: स्क्रिप्ट पीढ़ी है उठाया है।

मैं मैन्युअल रूप में जोड़कर भबका लिपि में इस बना सकते हैं।

op.create_unique_constraint('uq_table_col1_col2_col3', 'table', ['col1', 'col2', 'col3']) 

इस स्वचालित रूप से भबका द्वारा उत्पन्न किया जा करने के लिए एक तरीका है?

आपकी मदद के लिए धन्यवाद।

उत्तर

9

मैं एक ही समस्या का सामना कर रहा था और पाया है कि आप कथात्मक मॉडल का उपयोग कर तालिका को परिभाषित कर रहे हैं, आप इसे अद्वितीय बाधा __table_args__ को जोड़ सकते हैं और भबका यह लेने देगा:

class MyClass(Base): 
    __tablename__ = 'table' 
    __table_args__ = (
     UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3'), 
    ) 

http://docs.sqlalchemy.org/en/latest/orm/extensions/declarative/table_config.html

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