/ / SQLite से PostgreSQL पर स्विच करने की कोशिश कर रहा है - रूबी-ऑन-रेल, डेटाबेस, साइक्लाइट, पोस्टग्रैस्कल, हरोकू

SQLite से PostgreSQL में स्विच करने का प्रयास कर रहा है - रूबी-ऑन-रेल, डेटाबेस, एसक्लाइट, पोस्टग्रेस्क्ल, हेरोकू

मैं विकास और परीक्षण में SQLite का उपयोग कर रहा था, औरHeroku पर उत्पादन में PostgreSQL। मैं PostgreSQL के साथ SQLite को बदलना चाहूंगा। मैं Cloud9 पर्यावरण (रेल 4) में प्रोग्रामिंग कर रहा हूं। मेरे पास कोई डेटा नहीं है जिसे मैं संभावित रूप से खो सकता हूं।

मैंने क्या किया:

सबसे पहले, मैंने database.yml को संपादित किया:

default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production

फिर:

  • जेमफाइल में मैं स्थानांतरित हो गया gem "pg" उत्पादन वातावरण से केवल सभी वातावरणों तक और हटाए गए gem "sqlite3"
  • मैं भाग गया bundle install.
  • मैं भाग गया sudo service postgresql start
  • मैं भाग गया sudo sudo -u postgres psql
  • और प्रवेश किया create database "app_development";
  • घुसा q

अद्यतन करें: मैंने निम्नलिखित अतिरिक्त कदम जोड़े:

  • मैंने psql में एक नया उपयोगकर्ता बनाया है CREATE USER my_username SUPERUSER PASSWORD "my_password";
  • Database.yml में मैंने जोड़ा username तथा password
  • Database.yml में मैंने जोड़ा है host: myurl.c9.io
  • मैंने psql में प्रवेश किया: GRANT ALL ON DATABASE app_development to my_username

चल रहा है sudo sudo -u postgres psql और फिर list पैदा करता है:

      Name          |  Owner   | Encoding  | Collate | Ctype |   Access privileges
postgres           | postgres | SQL_ASCII | C       | C     |
template0          | postgres | SQL_ASCII | C       | C     | =c/postgres          +
|          |           |         |       | postgres=CTc/postgres
template1          | postgres | SQL_ASCII | C       | C     | =c/postgres          +
|          |           |         |       | postgres=CTc/postgres
app_development    | postgres | SQL_ASCII | C       | C     |

मैं app_development के मालिक के रूप में यहाँ अपना उपयोगकर्ता नाम नहीं देखता ...

त्रुटि: चल रहा है rake db:migrate बार बाहर, बताते हुए PG::ConnectionBad: could not connect to server: Connection timed out Is the server running on host "myurl.c9.io" (ip address) and accepting TCP/IP connections on port 5432?.

PostgreSQL के साथ कनेक्शन विफल क्यों हो सकता है?

उत्तर:

उत्तर № 1 के लिए 1

Database.yml फ़ाइल की सामग्री को इसमें बदलें:

default: &default
adapter: postgresql
host: localhost
username: yourusername
password: yourpassword
timeout: 5000
port: 5432
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production

क्योंकि आप Heroku का उपयोग करते हैं तो आप उत्पादन अनुभाग को छोड़ सकते हैं