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

FATAL:रोल रूट मौजूद नहीं है

आप पोस्टग्रेज़ सर्वर से स्पष्ट रूप से कनेक्ट कर सकते हैं (my यानी OS उपयोगकर्ता नाम) या निहित (timonin यानी database.yml . में भूमिका ) लॉगिन करें।

जैसा कि मैंने आपका database.yml देखा उपयोगकर्ता नाम विवरण है, लेकिन केवल उत्पादन के लिए वातावरण। रेल पर्यावरण निर्दिष्ट किए बिना रेक परीक्षण चलाना उन्हें विकास के विरुद्ध चलाएगा डिफ़ॉल्ट रूप से पर्यावरण। इसलिए आपको त्रुटि है जैसे FATAL: role "my" does not exist

इसलिए अपनी आवश्यकताओं के आधार पर आपको इन कथनों को सभी डेटाबेस की परिभाषाओं में जोड़ना होगा (test और development साथ ही):

  username: timonin
  password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %>

उसके बाद आप रेल एप्लिकेशन timonin . के रूप में कनेक्ट होंगे उपयोगकर्ता।

पूरी चेकलिस्ट निम्नलिखित है:

  • भूमिका बनाएं

यहाँ PostgreSQL के लिए SQL है:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • टिप्पणी हटाएं या बयान जोड़ें username: timonin और password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %> अपने database.yml फ़ाइल में
  • चलाएं TIMONIN_DATABASE_PASSWORD . के साथ सभी संचालन चर:

यहाँ बदला हुआ रेक कमांड है:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

या:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword' RAILS_ENV=test

परीक्षण वातावरण के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यूटीसी में दिनांक और समय - उन्हें पोस्टग्रेज में कैसे स्टोर करें?

  2. PostgreSQL में दो स्कीमा की तुलना कैसे करें

  3. एकाधिक स्तंभों में PostgreSQL अद्वितीय मान

  4. त्रुटि:ALTER TYPE... ADD लेन-देन ब्लॉक के अंदर नहीं चल सकता

  5. PostgreSQL - डेटाबेस का नाम बदलें