প্রকল্প সম্পর্কে

pgAdmin 4 হলো PostgreSQL ডেটাবেসের জন্য একটি ম্যানেজমেন্ট ও ডেভেলপমেন্ট প্ল্যাটফর্ম, যা পূর্ববর্তী pgAdmin3 টুলের পুনর্লিখন হিসেবে বর্ণিত। এটি একটি ওয়েব অ্যাপ্লিকেশন হিসেবে বাস্তবায়িত: সার্ভার সাইডে Python (Flask), ক্লায়েন্ট-সাইড UI-এর জন্য ReactJS, HTML5 এবং CSS। ডিপ্লয়মেন্ট অপশন: এটি একটি ওয়েব সার্ভারে চালানো এবং ব্রাউজারের মাধ্যমে অ্যাক্সেস করা যায়, অথবা runtime/ সাবডিরেক্টরিতে অবস্থিত Electron-ভিত্তিক রানটাইম অ্যাপ্লিকেশনের মাধ্যমে একটি ওয়ার্কস্টেশনে স্বতন্ত্রভাবে চালানো যায়, যা একটি Python সার্ভার প্রসেস ফর্ক করে এবং UI প্রদর্শন করে। README-তে তালিকাভুক্ত পূর্বশর্ত: Node.js 20 বা তার পরবর্তী, yarn (Corepack-এর মাধ্যমে সক্রিয়), Python 3.9 বা তার পরবর্তী, এবং একটি PostgreSQL সার্ভার। বিল্ড ওয়ার্কফ্লো: থার্ড-পার্টি JavaScript লাইব্রেরি এবং প্রকল্পের নিজস্ব JS, CSS ও ছবি একটি বান্ডেলে কম্পাইল করা হয়। *nix সিস্টেমে এটি make install-node এবং make bundle দিয়ে করা হয়; Windows-এ web ডিরেক্টরির ভিতরে yarn install এবং yarn run bundle দিয়ে। Python এনভায়রনমেন্ট সেটআপ: একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি ও সক্রিয় করুন, pip আপগ্রেড করুন, psycopg3 বিল্ড করার জন্য pg_config খুঁজে পাওয়ার জন্য PostgreSQL-এর bin/ ডিরেক্টরি PATH-এ আছে কিনা নিশ্চিত করুন, তারপর requirements.txt ইনস্টল করুন (এবং রিগ্রেশন টেস্টের জন্য web/regression/requirements.txt)। একটি স্থানীয় কনফিগারেশন ফাইল (web/config_local.py) config.py-এর সেটিংস ওভাররাইড করতে পারে, যার মধ্যে ডেটা ডিরেক্টরি, সার্ভার অ্যাড্রেস ও পোর্ট, সার্ভার বনাম ডেস্কটপ মোড, কনফিগ ডেটাবেস URI, SMTP সেটিংস, লগ লেভেল এবং SQLite পাথ অন্তর্ভুক্ত। কনফিগারেশন ডেটাবেসের প্রাথমিক সেটআপ সার্ভার মোডে ইন্টারঅ্যাকটিভ এবং ডেস্কটপ মোডে নন-ইন্টারঅ্যাকটিভ, যা web/setup.py-এর মাধ্যমে বা web/pgAdmin4.py চালু করে চালানো হয়। Sphinx দিয়ে ডকুমেন্টেশন বিল্ড করা যায় (make docs)। runtime ডিরেক্টরিতে yarn install চালিয়ে এবং dev_config.json.in-কে সমন্বিত পাথসহ dev_config.json-এ কপি করে রানটাইম বিল্ড করা যায়। প্যাকেজিং টার্গেটের মধ্যে রয়েছে একটি সোর্স টারবল (make src), একটি PIP হুইল (make pip), একটি macOS AppBundle, এবং একটি Windows ইনস্টলার, যেখানে pkg/mac এবং pkg/win32-এ প্ল্যাটফর্ম-নির্দিষ্ট নির্দেশনা রয়েছে। SQLite কনফিগ DB-এর জন্য ডেটাবেস মাইগ্রেশন Flask-Migrate (flask db revision) দিয়ে তৈরি করা হয়, upgrade ফাংশন সম্পাদনা করে এবং web/pgadmin/model/__init__.py-তে SCHEMA_VERSION বৃদ্ধি করে। সহায়তার অপশনগুলো pgadmin.org/support-এ তালিকাভুক্ত; নিরাপত্তা সমস্যাগুলো নিরাপত্তা ইমেইল ঠিকানায় রিপোর্ট করা উচিত। ডেভেলপমেন্ট GitHub-এ pgadmin-org/pgadmin4-এর অধীনে হয়, যেখানে master ব্রাঞ্চের বিরুদ্ধে পুল রিকোয়েস্ট হিসেবে অবদান এবং pgadmin-hackers মেইলিং লিস্টে আলোচনা হয়।