जब मैं pg_restore.exe
किसी डेटाबेस से डंप फ़ाइल को निष्पादित करने की कोशिश करता हूं , तो यह दर्जनों त्रुटियों को फेंक देता है, सभी समान:
ERROR: insert or update on table "someTable" violates foreign key constraint "aConstraintName"
यह स्पष्ट रूप से इस तथ्य के कारण है कि मैंने डेटा बेस को डंप फ़ाइल से पुनर्स्थापित करने से पहले खाली कर दिया है (यह फ़ाइल एक उत्पादन डेटाबेस से आती है) ... तो निश्चित रूप से कोई भी विदेशी कुंजी बाधा ठीक नहीं हो सकती है यदि एक संदर्भित तालिका खाली है ...
क्या मुझे कॉल करने से पहले सभी तालिकाओं के लिए बाधाओं और सभी विदेशी कुंजियों को अक्षम करने का एक तरीका है pg_restore.exe
, और बाद में बाधाओं और विदेशी कुंजियों को फिर से सक्षम करना है।
एसओ में मुझे कुछ दिलचस्प लगा: समय को कम करने के लिए बाधा की जाँच करना । लेकिन मुझे नहीं लगता कि मैं बाधाओं को pg_restore.exe
दूर करने के psql.exe
बाद अंदर से कॉल कर सकता हूं ।
10 साल पहले वापस डेटिंग, फिर बाधाओं को फिर से जोड़ने का सुझाव देते हुए यह पोस्ट भी है । या pg_class reltriggers के मान को 0 में बदलने के लिए और यह भी बाधाओं के लिए संभव होगा ... लेकिन मुझे डर है कि यह अच्छे अभ्यास से अधिक हैकिंग है ...
आप क्या सलाह देते हैं, इस मामले में सबसे अच्छा अभ्यास क्या है? क्या झंडे के pg_dump.exe
साथ-clean
प्रयोग करने से डंप बनता है जो डेटाबेस को पुनर्स्थापित करते समय बाधाओं की जाँच करता है?