2012-07-30 14 views
9

मैं आरओआर के लिए काफी नया हूं और मैं अपने अगले ऐप को उसकेोकू में तैनात करना चाहता हूं। मैं अपने विकास पर्यावरण को आसान बनाने के लिए अपने उत्पादन पर्यावरण से मेल खाने के लिए & परीक्षण वातावरण चाहता हूं। इस तरह, मैं अपने सिस्टम पर postgresql स्थापित करने के बारे में चला गया। यह प्रक्रिया निराशाजनक से अधिक रही है और मैं उलझन में हूं। मैंने अनगिनत ट्यूटोरियल का पालन नहीं किया और ऐसा लगता है कि कई लोगों के पास विरोधाभासी जानकारी है। यहां मुझे पता है कि:पोस्टग्रेस्क्ल.एप बनाम होमब्रू

पोस्टग्रेस्क्ल स्थापित करने के कई तरीके हैं। सामान्य विकल्प मैकपोर्ट, होमब्रू, फिंक, पोस्टग्रेसक्ल.एप, या एंटरप्राइज डीबी हैं। एक बार जब आप पिछले से एक को स्थापित, आप अपने रेल एप्लिकेशन बनाने के लिए और या तो चलाएँ:

rails new <app_name> -d postgresql 

या मानक 'नए रेल' और फिर अपने gemfile में 'PG' करने के लिए 'sqlite3' बदल चलाते हैं। तो फिर, अगर मैं सही हूँ, आप वास्तव में ऐसा करने से कमांड लाइन में अपने स्वयं के डेटाबेस बनाने के लिए है:

$ psql 
$ CREATE DATABASE your_database_name; 

फिर, अपने database.yml संपादित इस के करीब कुछ का पालन करने के:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: <your_database_name> 
    host: localhost 
    pool: 5 
    username: <username> 
    password: 

एक बार ऐसा करने के बाद, सभी ठीक होना चाहिए। हालांकि, मुझे समस्याएं आ रही हैं। मैं वास्तव में उपर्युक्त प्रक्रिया का उपयोग कर काम कर रहा हूं, लेकिन मैं उलझन में हूं कि यह कैसा चल रहा है। यह सब काम करने के लिए प्रयास करने के घंटों के दौरान, मैंने मैकपोर्ट, होमब्रू, और postgresql.app स्थापित किया। बहरहाल, जब भी मैं (इस तरह के एक के रूप में 'रेक db: विस्थापित') डेटाबेस के साथ बातचीत करने की कोशिश postgresql.app चल बिना, मैं इस त्रुटि मिलती है:

could not connect to server: Connection refused 
    Is the server running on host "localhost" (::1) and accepting 
    TCP/IP connections on port 5432? 
could not connect to server: Connection refused 
    Is the server running on host "localhost" (127.0.0.1) and accepting 
    TCP/IP connections on port 5432? 
could not connect to server: Connection refused 
    Is the server running on host "localhost" (fe80::1) and accepting 
    TCP/IP connections on port 5432? 

अगर मैं यह आग वापस ऊपर, सब कुछ ठीक है। ठीक है, इसलिए मुझे लगता है कि मेरी प्रणाली postresql चलाने के लिए postgresql.app का उपयोग कर रही है। उस जानकारी के साथ, मैं आत्मविश्वास से पोस्टग्रेस्क्ल के मैकपोर्ट्स और होम्बू इंस्टॉलेशन को अनइंस्टॉल करता हूं।

Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError) 

मैं macports पुनः स्थापित और अब भी वही त्रुटि मिलती है: हालांकि, ऐसा करने पर, मैं इस त्रुटि जब डेटाबेस के साथ बातचीत करने की कोशिश कर रहा हो। फिर मैं होमब्रू को पुनर्स्थापित करता हूं और त्रुटि दूर हो जाती है। मैं फिर मैकपोर्ट को फिर से अनइंस्टॉल करता हूं और सब अभी भी ठीक है। ऐसा प्रतीत होता है कि postgresql.app और मेरी होमब्रू स्थापना किसी अन्य पर निर्भर करती है। यदि मैं सही हूं, तो वे एक-दूसरे से स्वतंत्र रूप से दौड़ने में सक्षम होना चाहिए क्योंकि प्रत्येक पोस्टग्रेक्ल का पूर्ण इंस्टॉल है। मैं इस बिंदु पर विचारों से काफी दूर हूं। इस प्रक्रिया को कैसे किया जा रहा है इस पर कोई भी और सभी इनपुट क्या हो रहा है, इसकी बहुत सराहना की जाएगी।

संपादित

$ which psql 

शो:

/usr/local/bin/psql 

और

ls -l /usr/local/bin/psql 

शो:

lrwxr-xr-x 1 robertquinn admin 35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql 
+1

मेरा अनुमान है अपने postgres सर्वर postgres.app के तहत चल रहा है, लेकिन अपने आदेश पंक्ति रास्तों homebrew निष्पादनयोग्य ओर इशारा करते हैं ? 'कौन सा psql' दिखाता है? और फिर 'ls -l' वह पथ – house9

+0

उन्हें एक संपादन में जोड़ा गया – flyingarmadillo

+1

सेलर वह जगह है जहां होमब्री इंस्टॉल हो जाता है, आप अपने पथ पर postgres.app जोड़ने का प्रयास कर सकते हैं, http://postgresapp.com/documentation – house9

उत्तर

5

होमब्री निश्चित रूप से जाने का तरीका है। मैकपोर्ट्स का उपयोग करने के वर्षों के बाद, मुझे होमब्रू अधिक उपयोग, अपग्रेड और बनाए रखने में आसान लगता है।

यदि आप होमब्रू के लिए नए हैं, तो कभी-कभी जब आप कुछ इंस्टॉल करते हैं, तो इंस्टॉल के अंत में आउटपुट मुद्रित किया जाएगा जो आपको अतिरिक्त कार्य देता है।कभी-कभी इंस्टॉलेशन आपको नए लिंक मैन्युअल रूप से बनाने के लिए कहता है, कभी-कभी यह आपको नए सेलर-स्थित एक्जिक्यूटिव के साथ लिंक फिर से करने के लिए कहता है। सुनिश्चित करें कि आप उस आउटपुट को पढ़ते हैं और बाद में निर्देशों का पालन करते हैं।

एक बार उन निर्देशों का पालन करने के बाद, अपनी सेटिंग्स का सम्मान करने के लिए एक नई टर्मिनल विंडो खोलें।

इसके अलावा, अगर आप rails new app_name -D postgresql उपयोग करते हैं, अपने database.yml फ़ाइल पहले से ही ठीक से कॉन्फ़िगर किया जाना चाहिए, जब तक कि बेशक आप अपने postgres उदाहरण एक उपयोगकर्ता नाम और पासवर्ड का उपयोग करने के लिए कॉन्फ़िगर है।

शुरू करने और रोकने के postgres आसान बनाने के लिए, मैं अपने .profile फाइल करने के लिए इन आदेशों जोड़ा

# postgres 
alias pg_start="pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start" 
alias pg_stop="pg_ctl -D /usr/local/var/postgres stop -s -m fast" 
+0

क्या आप में से कोई एक पोस्ट कर सकता है जिसे आपने वास्तव में हल करने के लिए किया था? मैं ठीक उसी स्थान पर हूं जैसे @flyingarmadillo – ajbraus

+0

@ajbraus आपको परेशानी हो रही है? उपर्युक्त आदेश जिन्हें मैंने उपनाम दिया है, पोस्टग्रेस शुरू करने और रोकने के लिए आदेश हैं। शुरू करने के लिए, आप टाइप करेंगे (आपके टर्मिनल में) 'pg_ctl -D/usr/local/var/postgres -l /usr/local/var/postgres/server.log start'। इसका कोई मतलब भी है क्या? – sorens

+0

मुझे यह मिलता है: सर्वर प्रारंभ: /usr/local/var/postgres/server.log: ऐसी कोई फ़ाइल या निर्देशिका –

संबंधित मुद्दे