हर बार जब मैं नकल करने या इंटरफ़ेस से डेटाबेस ड्रॉप मैं हमेशा इस त्रुटि मिलती है, भले ही सभी उपयोगकर्ताओं प्रस्थान कर गए हैं की कोशिश: मैं इस चलाने के लिए है तो फिरमैं ओडू इंटरफ़ेस से डेटाबेस को डुप्लिकेट या ड्रॉप नहीं कर सकता क्योंकि डेटाबेस का उपयोग कर सत्र हैं। इसे स्थायी रूप से कैसे ठीक करें?
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 वर्तमान में तोड़ नहीं है कि आवश्यकता है मौजूदा/बकाया कनेक्शन, इसलिए सर्वर को पुनरारंभ करना यह सुनिश्चित करने का सबसे आसान तरीका है कि सब कुछ सही स्थिति में है।
इन नियंत्रकों को ओवरराइड करने के लिए सुरक्षित है? ऐसा करने का बेहतर तरीका क्या है? मैं इंटरफ़ेस का उपयोग करके ऐसा करना चाहता हूं क्योंकि अगर मैं इसे मैन्युअल रूप से करता हूं या यदि मुझे हर बार सर्वर को रोकना है तो बहुत परेशान है।
मुझे लगता है कि आप समझ नहीं रहे हैं कि मैं क्या करने की कोशिश कर रहा हूं। मैं ओडू डाटाबेस मैनेजर इंटरफेस से डेटाबेस को हटाने की कोशिश कर रहा हूं, इसे करने से पहले कनेक्शन को तोड़ने के लिए, ERROR 'स्रोत डेटाबेस" डेटाबेस_नाम "से बचने के लिए अन्य उपयोगकर्ताओं द्वारा उपयोग किया जा रहा है।और मैं ओडू सर्वर को रोकना नहीं चाहता, और मैं मैन्युअल रूप से कनेक्शन को रोकना नहीं चाहता – ChesuCR