आप पोस्टग्रेज़ सर्वर से स्पष्ट रूप से कनेक्ट कर सकते हैं (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
परीक्षण वातावरण के लिए।