2015-09-07 10 views
8

हर बार जब मैं नकल करने या इंटरफ़ेस से डेटाबेस ड्रॉप मैं हमेशा इस त्रुटि मिलती है, भले ही सभी उपयोगकर्ताओं प्रस्थान कर गए हैं की कोशिश: मैं इस चलाने के लिए है तो फिरमैं ओडू इंटरफ़ेस से डेटाबेस को डुप्लिकेट या ड्रॉप नहीं कर सकता क्योंकि डेटाबेस का उपयोग कर सत्र हैं। इसे स्थायी रूप से कैसे ठीक करें?

ERROR: source database "database_name" is being accessed by other users 
DETAIL: There are 5 other sessions using the database. 

अगर नकल या एक डेटाबेस ड्रॉप करना चाहते हैं

SELECT pg_terminate_backend(pg_stat_activity.pid) 
FROM pg_stat_activity 
WHERE pg_stat_activity.datname = 'database_name' AND pid <> pg_backend_pid(); 

मैं करना चाहते हैं क्या आदेश कार्यों duplicate_database और drop के निष्पादन से पहले हमेशा क्वेरी चलाने के लिए नीचे नियंत्रकों ओवरराइड करने के लिए है: सभी कनेक्शनों को समाप्त करने से पहले क्वेरी

@http.route('/web/database/duplicate', type='json', auth="none") 
def duplicate(self, fields): 
    params = dict(map(operator.itemgetter('name', 'value'), fields)) 
    duplicate_attrs = (
     params['super_admin_pwd'], 
     params['db_original_name'], 
     params['db_name'], 
    ) 
    return request.session.proxy("db").duplicate_database(*duplicate_attrs) 

@http.route('/web/database/drop', type='json', auth="none") 
def drop(self, fields): 
    password, db = operator.itemgetter(
     'drop_pwd', 'drop_db')(
      dict(map(operator.itemgetter('name', 'value'), fields))) 
    try: 
     if request.session.proxy("db").drop(password, db): 
      return True 
     else: 
      return False 
    except openerp.exceptions.AccessDenied: 
     return {'error': 'AccessDenied', 'title': 'Drop Database'} 
    except Exception: 
     return {'error': _('Could not drop database !'), 'title': _('Drop Database')} 

और मैं Documentation of Odoo में इस नोट मिला:

[...] इस आपरेशन डेटाबेस से कोई संबंध नहीं दोहराया जा रहा हो, लेकिन Odoo वर्तमान में तोड़ नहीं है कि आवश्यकता है मौजूदा/बकाया कनेक्शन, इसलिए सर्वर को पुनरारंभ करना यह सुनिश्चित करने का सबसे आसान तरीका है कि सब कुछ सही स्थिति में है।

इन नियंत्रकों को ओवरराइड करने के लिए सुरक्षित है? ऐसा करने का बेहतर तरीका क्या है? मैं इंटरफ़ेस का उपयोग करके ऐसा करना चाहता हूं क्योंकि अगर मैं इसे मैन्युअल रूप से करता हूं या यदि मुझे हर बार सर्वर को रोकना है तो बहुत परेशान है।

उत्तर

-1

पोस्टग्रेस्क्ल डेटाबेस पर जाएं और अपने डेटाबेस पर राइट क्लिक करें, आपको अपने डेटाबेस को छोड़ने/हटाने का विकल्प मिलेगा। उस समय यदि आपको यह त्रुटि मिलती है, तो odoo सर्वर को सेवाओं की सूची से रोकने का प्रयास करें और पुनः प्रयास करें।

+0

मुझे लगता है कि आप समझ नहीं रहे हैं कि मैं क्या करने की कोशिश कर रहा हूं। मैं ओडू डाटाबेस मैनेजर इंटरफेस से डेटाबेस को हटाने की कोशिश कर रहा हूं, इसे करने से पहले कनेक्शन को तोड़ने के लिए, ERROR 'स्रोत डेटाबेस" डेटाबेस_नाम "से बचने के लिए अन्य उपयोगकर्ताओं द्वारा उपयोग किया जा रहा है।और मैं ओडू सर्वर को रोकना नहीं चाहता, और मैं मैन्युअल रूप से कनेक्शन को रोकना नहीं चाहता – ChesuCR

1

ग्राहक पोस्ट होने पर आप पोस्टग्रेज़ डेटाबेस नहीं छोड़ सकते हैं। काफी मजबूत जिस तरह से यह आस-पास काम करने के लिए,

यकीन है कि कोई भी इस डेटाबेस के लिए

update pg_database set datallowconn = 'false' where datname = 'mydb'; 

सेना इस डेटाबेस से जुड़े सभी ग्राहकों के वियोग कनेक्ट कर सकते हैं बनाने के लिए है।

postgres < 9.2 के लिए:

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb'; 

postgres संस्करणों> = 9.2 बदलाव के लिए पीआईडी ​​को procpid:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb'; 

यह ड्रॉप

DROP DATABASE mydb; 

चरण 1 और 2 सुपर उपयोगकर्ता विशेषाधिकारों की आवश्यकता , चरण 3 को डेटाबेस स्वामी विशेषाधिकार की आवश्यकता है।

आप केवल ड्रॉपडब उपयोगिता का उपयोग करके यह सब नहीं कर सकते - जो ड्रॉप डाटाबेस सर्वर क्वेरी के आसपास एक साधारण रैपर है।

+0

मेरे पास पहले से ही प्रश्न में यह प्रश्न है। मैं जो करना चाहता हूं वह उस क्वेरी को नियंत्रक को जोड़ता है जब मैं ड्रॉप करता हूं या जब मैं डेटाबेस को डुप्लिकेट करता हूं तो इसे हमेशा स्वचालित रूप से चलाने के लिए होता है। लेकिन मुझे नहीं पता कि मुझे यह कैसे करना चाहिए। उदाहरण के लिए मुझे नहीं पता कि विधि 'ड्रॉप (पासवर्ड, डीबी) कहां है: 'घोषित किया गया – ChesuCR

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

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