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

विंडोज के लिए पोस्टग्रेएसक्यूएल विकसित करना, भाग 2

पिछले ब्लॉग पोस्ट में, हमने विभिन्न विंडोज बिल्ड वेरिएंट पर चर्चा की थी जो PostgreSQL का समर्थन करता है। इस पोस्ट में, हम चर्चा करेंगे कि यूनिक्स-आधारित डेवलपर के रूप में, आप कैसे जांच सकते हैं कि आपका पैच विंडोज़ पर काम कर सकता है या नहीं। (सादगी के लिए, मैं लिनक्स, बीएसडी, मैकओएस, और इसी तरह के अर्थ के लिए "यूनिक्स" कहूंगा।)

सबसे पहले, विंडोज के बिना अपने पैच की जांच करने के कुछ तरीके हैं।

यदि आपका पैच बिल्ड सिस्टम को छूता है, उदाहरण के लिए नई फाइलें जोड़कर, या सशर्त, नए बिल्ड विकल्प, या अतिरिक्त एड-हॉक लॉजिक जोड़कर अधिक संभावना है, तो यह MSVC बिल्ड स्क्रिप्ट को तोड़ सकता है, जो यूनिक्स मेकफ़ाइल को पार्स करता है, जैसा कि हमने चर्चा की पिछली बार। लेकिन आप वास्तव में उन स्क्रिप्ट को यूनिक्स पर भी चला सकते हैं। उनमें (लगभग) विंडोज़ के लिए कुछ भी विशिष्ट नहीं है, क्योंकि वे वास्तव में फाइलों के एक सेट को पार्स करते हैं और दूसरे का उत्पादन करते हैं। आप बस दौड़ सकते हैं

perl src/tools/msvc/mkvcbuild.pl

और देखो क्या होता है। यह प्रतिबद्ध 73c8596 के रूप में काम करता है। (हो सकता है कि अपना काम पहले ही सेव कर लें, क्योंकि यह आपके स्थानीय गैर-विंडोज कॉन्फ़िगरेशन द्वारा उपयोग की जाने वाली कुछ जेनरेट की गई फाइलों को अधिलेखित कर सकता है)। यह विजुअल स्टूडियो के लिए प्रोजेक्ट फाइलें तैयार करेगा, जिसके साथ आप ज्यादा कुछ नहीं कर सकते हैं, लेकिन आप जांच सकते हैं कि स्क्रिप्ट बिल्कुल चलती है या नहीं, आप आउटपुट की तुलना पहले और बाद में कर सकते हैं, या यदि आपने किसी भी "ब्लाइंड एडिट्स" को किया है। src/tools/msvc/ . के अंतर्गत फ़ाइलें आप उन्हें कुछ हद तक सत्यापित कर सकते हैं।

दूसरा तरीका बिल्ड विकल्पों का प्रयोग करना है जो आमतौर पर विंडोज से जुड़े होते हैं। इनमें से कौन सा उपयोगी है यह इस बात पर निर्भर करता है कि आपका पैच क्या बदलता है। उदाहरण के लिए, विंडोज़ HAVE_UNIX_SOCKETS के साथ बनाता है अपरिभाषित, इसलिए परीक्षण करना कि यदि आप नेटवर्क कोड में परिवर्तन कर रहे हैं तो मैन्युअल रूप से सार्थक हो सकता है। (लेकिन यह बंद हो रहा है, क्योंकि विंडोज वास्तव में अब यूनिक्स-डोमेन सॉकेट का समर्थन करता है।) इसी तरह, HAVE_WORKING_LINK विंडोज़ पर अपरिभाषित है, हालांकि इसका प्रभाव छोटा है (और यह भी दूर जा रहा है; कभी-कभी इस तरह ब्लॉग पोस्ट लिखने का नतीजा यह पता लगाना है कि जिन समस्याओं का आप वर्णन करना चाहते थे, वे पहले स्थान पर नहीं होनी चाहिए, और आप उन्हें ठीक करें)। आप src/include/pg_config_manual.h को संपादित करके इन दोनों विकल्पों को बदल सकते हैं . दूसरा महत्वपूर्ण विकल्प है EXEC_BACKEND , जो यूनिक्स-शैली की जगह लेता है fork() fork() . के साथ कॉल करें प्लस exec() कार्यान्वयन जिसे CreateProcess() . में मैप किया जा सकता है विंडोज़ पर। यह वास्तव में आश्चर्यजनक रूप से शायद ही कभी टूटता है, लेकिन यदि ऐसा होता है, तो आप इसे पूरी तरह से यूनिक्स सिस्टम पर डीबग और ठीक कर सकते हैं। EXEC_BACKEND को सक्षम करने के लिए , आप या तो src/Makefile.global . संपादित कर सकते हैं और -DEXEC_BACKEND जोड़ें करने के लिए CPPFLAGS , या शायद src/include/pg_config_manual.h में एक परिभाषा जोड़ें . (सुनिश्चित नहीं है कि यह अन्य लोगों से अलग क्यों है; शायद कभी-कभी ठीक करने के लिए एक और चीज। [अपडेट:भी तय किया गया])

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

  • https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/
  • https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

इनमें से दूसरा ब्राउज़र परीक्षण के लिए है, इसलिए शायद पहला अब बेहतर है, लेकिन ब्राउज़र-परीक्षण मार्ग कुछ समय के लिए लोकप्रिय रहा है। ये नि:शुल्क मूल्यांकन प्रतियाँ हैं, लेकिन कृपया लाइसेंस को स्वयं पढ़ें।

दूसरा, आप क्लाउड कंप्यूटिंग प्रदाता पर क्लाउड इंस्टेंस लॉन्च कर सकते हैं। मैं उनका नाम नहीं लेने जा रहा, लेकिन आप जानते हैं कि वे कौन हैं।

जब आपके पास विंडोज ऑपरेटिंग सिस्टम चल रहा हो, तो मैं MSYS2 को स्थापित करने की सलाह देता हूं। (यदि आप चाहें तो माइक्रोसॉफ्ट से ऊपर दिए गए पहले डाउनलोड लिंक में विजुअल स्टूडियो भी स्थापित है।) msys2.org पर जाने के लिए ब्राउज़र का उपयोग करें (संभवतः इंटरनेट एक्सप्लोरर या जो भी इसे अभी कहा जाता है), इंस्टॉलर चलाएं, और कुछ ही मिनटों में आप एक पूर्ण MSYS2/MinGW वातावरण तैयार होगा। पैकेज प्रबंधक को अद्यतन रखने के लिए msys2.org वेब साइट पर दिए गए निर्देशों का पालन करें। फिर, स्टार्ट मेनू से एक MinGW (MSYS2 नहीं) खोल खोलें और PostgreSQL विकास के लिए आवश्यक पैकेज प्राप्त करने के लिए निम्नलिखित चलाएँ:

pacman -S git

अब आप रिपॉजिटरी को क्लोन कर सकते हैं। जबकि वह चलता है …

pacman -S ${MINGW_PACKAGE_PREFIX}-gcc ${MINGW_PACKAGE_PREFIX}-gettext ${MINGW_PACKAGE_PREFIX}-icu ${MINGW_PACKAGE_PREFIX}-libxml2 ${MINGW_PACKAGE_PREFIX}-libxml2 ${MINGW_PACKAGE_PREFIX}-prefix_openxs difflt ${MINGW_PACKAGE_PREFIX}- 

MINGW_PACKAGE_PREFIX एक पर्यावरण चर है जो आपके लिए निर्धारित है, इसलिए इस तरह के आदेश टाइप करें। (यह 32-बिट और 64-बिट MinGW के लिए अलग होगा।) उपसर्ग के बिना पैकेज MSYS2 (यानी, Cygwin) पैकेज हैं। भाग 1 फिर से देखें अगर यह भ्रमित करने वाला है। इस बिंदु पर, आपके पास PostgreSQL के लिए एक पूर्ण MinGW बिल्ड वातावरण होगा। आप कॉन्फ़िगर कर सकते हैं, बना सकते हैं, चेक कर सकते हैं, और इसी तरह। कुछ बिल्ड विकल्पों के लिए अतिरिक्त पैकेज की आवश्यकता हो सकती है, लेकिन सभी विकल्प वास्तव में काम नहीं करते हैं; उदाहरण के लिए कोई रीडलाइन नहीं (उसके लिए सिगविन का उपयोग करें)।

इस श्रृंखला के अगले भाग में, मैं विंडोज़ के लिए स्वचालित निर्माण/निरंतर एकीकरण विकल्पों को देखूंगा जिनका उपयोग पैच सत्यापित करने के लिए किया जा सकता है।


  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. त्रुटि:संदर्भित टेबल बार के लिए दी गई कुंजियों से मेल खाने वाली कोई अनूठी बाधा नहीं है

  4. 8589934592 बाइट्स की अनुमत स्मृति आकार समाप्त हो गया

  5. PostgreSQL के लिए बहु-किरायेदार विकल्प