PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL के साथ Capistrano, त्रुटि:डेटाबेस को अन्य उपयोगकर्ताओं द्वारा एक्सेस किया जा रहा है

PostgreSQL के साथ आप इसके अलावा अन्य सभी खुले कनेक्शनों के बैकएंड पिड्स को वापस करने के लिए निम्नलिखित कथन जारी कर सकते हैं:

SELECT pid FROM pg_stat_activity where pid <> pg_backend_pid();

फिर आप इनमें से प्रत्येक बैकएंड को

. के साथ समाप्ति अनुरोध जारी कर सकते हैं
SELECT pg_terminate_backend($1);

प्रत्येक pg_terminate_backend निष्पादन के लिए पहले कथन से लौटाए गए पिड्स को बांधना।

यदि अन्य कनेक्शन आपके जैसे उपयोगकर्ता का उपयोग नहीं कर रहे हैं, तो आपको सफलतापूर्वक टर्मिनेट जारी करने के लिए सुपरयूज़र के रूप में कनेक्ट करना होगा।

अद्यतन:टिप्पणियों को शामिल करना और Capistrano कार्य के रूप में व्यक्त करना:

desc "Force disconnect of open backends and drop database"
task :force_close_and_drop_db do
  dbname = 'your_database_name'
  run "psql -U postgres",
      :data => <<-"PSQL"
         REVOKE CONNECT ON DATABASE #{dbname} FROM public;
         ALTER DATABASE #{dbname} CONNECTION LIMIT 0;
         SELECT pg_terminate_backend(pid)
           FROM pg_stat_activity
           WHERE pid <> pg_backend_pid()
           AND datname='#{dbname}';
         DROP DATABASE #{dbname};
      PSQL
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql - उस तालिका में प्रविष्टियाँ कैसे प्राप्त करें जिसका किसी अन्य तालिका में मिलान नहीं है

  2. PostgreSQL ट्रिगर्स का उपयोग कैसे करें?

  3. PostgreSQL में कॉलम डेटाटाइप को टेक्स्ट से इंटीजर में बदलें

  4. पोस्टग्रेज़ पढ़ने की पहुँच के लिए CSV फ़ाइल नहीं खोल सकते:अनुमति अस्वीकृत

  5. PostgreSQL परिणाम को कैसे समतल करें