पोस्टग्रेज के साथ विंडोज 7 पर रूबी 2.0 का उपयोग करते समय मेरे एक मित्र को भी यही समस्या हुई। यह न केवल नियंत्रक को नष्ट करने का प्रयास करते समय होता है, बल्कि प्रत्येक डेटाबेस क्रिया के लिए (रेक डीबी सहित:बनाएं)। समस्या यह है कि रूबी 2.0 के लिए pg_ext.so फ़ाइल शामिल नहीं है। इसे 1.9 के लिए शामिल किया गया है, लेकिन इसे केवल 2.0 में कॉपी करने से काम नहीं लगता। हालाँकि, मुझे सही pg_ext.so प्राप्त करने का एक और तरीका मिला। बिल्कुल यकीन नहीं है कि यह क्यों काम करता है, लेकिन यह उसके लिए काम करता है। यहाँ आपको क्या करना है:
- उस फ़ोल्डर में जाएं जहां 2.0/pg_ext.so (वह फ़ाइल जो नहीं मिली) स्थित होनी चाहिए। आपके मामले में C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
- यहां '2.0' (बिना उद्धरण के) नाम का एक फोल्डर बनाएं।
- इस फ़ोल्डर में आपको सही pg_ext.so फ़ाइल की आवश्यकता होगी। आप इसे निम्न तरीके से प्राप्त कर सकते हैं:
- मैन्युअल रूप से पीजी रत्न (कंसोल में "मणि स्थापित पीजी") स्थापित करें। यह मणि के गैर x86-mingw32 संस्करण को स्थापित करता है। यह समस्या को ठीक नहीं करता है, लेकिन यह सही pg_ext.so बनाता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि यह आपके सिस्टम के लिए पीजी मणि संकलित करता है, इसलिए रूबी 2.0 के लिए। फिर आप इस pg_ext.so फ़ाइल को pg x86-mingw32 संस्करण के साथ उपयोग कर सकते हैं। पीजी को संकलित और स्थापित करने के लिए आपको देवकिट की आवश्यकता होगी (http://rubyinstaller.org/add- ऑन्स/देवकिट/ )।
- pg-0.14.1 रत्न फ़ोल्डर में pg_ext.so के स्थान पर जाएं। आपके मामले में यह होगा C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
- इस फ़ोल्डर से pg_ext.so फ़ाइल को चरण 2 में नए pg-0.14.1-x86-mingw32/lib/2.0/ फ़ोल्डर में कॉपी करें।
- अब अपने आदेशों का पुन:प्रयास करें और जांचें कि क्या सब कुछ काम करता है। अगर ऐसा नहीं होता है, तो अपने Gemfile.lock को हटा दें और बंडल इंस्टाल को फिर से चलाएँ।
- इस रत्न के साथ भी यही समस्या अन्य mingw32 रत्नों के साथ भी हो सकती है। उदाहरण के लिए, मुझे bcrypt-rails मणि के साथ भी यही समस्या थी। ऊपर वर्णित समान चरणों का पालन करने से समस्या ठीक हो गई। मैं अब सफलतापूर्वक विंडोज 7 पर रूबी 2.0 चला रहा हूं।
पीएस यदि आपको विंडोज 7 64 बिट पर पीजी मणि चलाने में कोई अन्य समस्या है, तो रूबी (रूबीइंस्टालर) और पोस्टग्रेस्क्ल के 32 बिट x86 संस्करण को स्थापित करने का प्रयास करें। इसके अलावा, सुनिश्चित करें कि आप अपने पथ में रूबी फ़ोल्डर्स शामिल करते हैं (यह रूबी इंस्टालर का उपयोग करके रूबी 2.0 स्थापित करते समय एक विकल्प है) साथ ही पोस्टग्रेस्क्ल लिब और बिन फ़ोल्डर्स।
शुभकामनाएँ!