2014-07-03 11 views
12

में कुछ को छोड़कर सभी डेटाबेस को कैसे छोड़ें, मैं कुछ को छोड़कर सभी डेटाबेस छोड़ना चाहता हूं। आइए कहें कि 20 डेटाबेस हैं और मैं उनमें से 18 को हटाना चाहता हूं लेकिन 2 रखना क्योंकि यह नवीनतम है और उपयोग में है।पोस्टग्रेज़

कृपया सुझाव दें।

+0

अपने हटाए गए 18 डेटाबेस के लिए "डेटाबेस डेटाबेस डेटाबेस ड्रॉप" .. – SkyWalker

+0

त्वरित उत्तर के लिए धन्यवाद! मुझे एक स्क्रिप्ट चाहिए जहां मैं केवल 2 डेटाबेस नामों का उल्लेख करना चाहता हूं जिन्हें मैं रखना चाहता हूं। – ManishD

+0

@ user3800715 ... और जब आपने अपनी पसंद की स्क्रिप्टिंग भाषा का उपयोग करके स्वयं को इस स्क्रिप्ट को लिखने का प्रयास किया, तो आप कहां फंस गए? –

उत्तर

28

सबसे पहले, psql टर्मिनल में निम्न क्वेरी निष्पादित करें।

select 'drop database "'||datname||'";' 
from pg_database 
where datistemplate=false; 

यह सभी डेटाबेस के लिए drop database आदेश उत्पन्न होगा। परिणाम को एक टेक्स्ट एडिटर में कॉपी करें और जिसे आप रखना चाहते हैं उसे हटाएं (हटाएं) और इसे dd.sql फ़ाइल के रूप में सहेजें। और यह इस तरह निष्पादित करें:

psql -d postgres -f dd.sql 
1

स्वीकार किए जाते हैं जवाब थोड़े इसे पता चलता है, विभिन्न डेटाबेस छोड़ने मेरे लिए विशेष रूप से कठिन था, इसलिए मैं इस आपरेशन को कम करने के लिए एक सहायक पटकथा लिखी: https://github.com/Kraymer/ezdropdb

संक्षेप में, आप में प्रवेश एक पैटर्न जिसे आप दबाने वाले डेटाबेस को मेल करना चाहते हैं, तब मेल खाना चाहिए, फिर सभी डीबी नामों के परिणाम सूचीबद्ध हैं और एक अंतिम संकेत है जहां आप उनमें से कौन से ड्रॉप (प्रोजेक्ट पेज पर सीएफ स्क्रीनशॉट) दर्ज कर सकते हैं।

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