तालिका स्तर पहले_क्रिएट/आफ्टर_क्रिएट ईवेंट उत्सर्जित होते हैं (सिर्फ मेटाडेटा स्तर वाले नहीं)। आपको यह सुनिश्चित करने की आवश्यकता है कि आपकी env.py स्क्रिप्ट में जो कुछ भी होता है, उसमें अंततः वे ईवेंट श्रोता शामिल होते हैं जिन्हें सेट किया जा रहा है।
आपके पास जो कोड है वह थोड़ा संदिग्ध लग रहा है:
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Session.__table__
यहाँ केवल एक Table
होगी उदाहरण और शायद वह नहीं है जो आप एलेम्बिक लिपि में देखेंगे। एलेम्बिक create_table
कमांड एक Table
बनाता है स्थानीय रूप से और बस उस पर एक निर्माण चलाता है, इसलिए आपको विश्व स्तर पर सभी तालिका वस्तुओं को सुनना होगा:
from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)
यदि ये ईवेंट केवल इस एक विशिष्ट तालिका के लिए हैं, तो आप किसी भी ईवेंट का उपयोग नहीं करेंगे, आप सीधे अपनी माइग्रेशन स्क्रिप्ट में उन ट्रिगर्स के लिए DDL() डाल देंगे, ठीक उसके बाद create_table()
।