بخش اول: ورود به جهان قدرتمند PostgreSQL
بخش دوم: جادوی جستجو و کوئری‌نویسی
بخش سوم: بهینه‌سازی و ساختارهای پیشرفته
بخش چهارم: امنیت، پشتیبانی، عملکرد و نگه‌داری
کارگاه‌ها و مثال‌های کاربردی

نصب و راه‌اندازی پستگرس و مروری بر ابزارهای اصلی مرتبط 🎥

نصب PostgreSQL در سیستم‌عامل‌های مختلف و راه‌اندازی ابزارهای کلاینت PostgreSQL شامل مراحلی است. این راهنما به صورت مختصر به نصب PostgreSQL (نصب‌کننده ویندوز، Docker)، راه‌اندازی pgAdmin (از طریق نصب کننده ویندوز پستگرس، وب Docker)، و ابزارهای کلاینت و IDEهای مختلف PostgreSQL می پردازد.

ویندوز

نصب PostgreSQL:

۱. دانلود نصب‌کننده: نصب‌کننده ویندوز را از صفحه دانلود ویندوز PostgreSQL برای نسخه مورد نظر PostgreSQL دانلود کنید.

۲. اجرای نصب‌کننده: فایل نصب‌کننده دانلود شده را باز کنید. اگر هشدار امنیتی ظاهر شد، روی ‘Yes’ کلیک کنید تا اجازه اجرای نصب‌کننده داده شود.

۳. ویزارد نصب: مراحل ویزارد نصب را دنبال کنید و اطمینان حاصل کنید که کامپوننت‌های زیر را انتخاب کرده‌اید:

  • PostgreSQL Server (الزامی)
  • pgAdmin (واسط کاربری اصلی پستگرس)
  • Stack Builder (اگر می‌خواهید افزونه‌ها و امکانات جانبی پستگرس را به راحتی نصب کنید)
  • Command Line Tools (نصب ابزارهایی مانند PSQL)

۴. رمز عبور: رمز عبور را برای کاربر سوپر یوزر پیش‌فرض PostgreSQL (postgres) تنظیم کنید.

۵. پیکربندی پورت: پورت پیش‌فرض ۵۴۳۲ است. در صورت نیاز تغییر دهید (اطمینان حاصل کنید که پورت جدید توسط سرویس‌های دیگر استفاده نشده باشد).

۶. تنظیمات Locale:هنگام نصب، Locale مورد استفاده PostgreSQL را انتخاب کنید. این تعیین می‌کند که داده‌هایی مانند تاریخ، زمان، اعداد و ارز چگونه فرمت‌بندی و تفسیر می‌شوند. تنظیم Locale بر ترتیب مرتب‌سازی و نحوه مقایسه کاراکترها تأثیر می‌گذارد. برای فارسی می توانید از مقدار fa_IR.UTF-8 استفاده کنید.

۷. نصب: روی ‘Next’ کلیک کنید تا نصب شروع شود.

۸. تکمیل نصب: پس از تکمیل نصب، PostgreSQL Server روی ماشین ویندوز شما اجرا خواهد شد.

نکته: اگر در خط فرمان، با زدن psql یا سایر ابزارهای خط فرمان استاندارد پستگرس، خطایی مبنی بر ناشناخته بودن این دستور دریافت می‌کنید، پوشه bin موجود در پوشه اصلی پستگرس روی سیستم خودتان را به متغیر محیطی path در ویندوز اضافه کنید و ترمینال را بسته و مجددا دستورات مد نظر خودتان را وارد کنید.

نصب pgAdmin:

  • نصب یکپارچه: pgAdmin معمولاً در نصب‌کننده ویندوز PostgreSQL گنجانده شده، بنابراین نصب جداگانه معمولاً لازم نیست.

نکات و هشدارها بعد از نصب پستگرس:

  • ایمنی رمز عبور: رمز عبور کاربر postgres را به خاطر بسپارید، زیرا برای وظایف مدیریتی ضروری است.
  • پیکربندی فایروال: اطمینان حاصل کنید که پورت PostgreSQL (پیش‌فرض ۵۴۳۲) در تنظیمات فایروال شما باز است اگر نیاز به دسترسی به دیتابیس از ماشین‌های دیگر دارید.
  • سرویس‌های Postgres: وضعیت سرویس Postgres را چک کنید (postgresql-x64-18) در ابزار سرویس‌های ویندوز.
  • تنظیم Path برای PSQL: اگر احیانا مسیر پوشه bin پستگرس را به خاطر نمی‌آورید، کافی است از مسیر pgadmin-> tools-> psql-> مسیر آنرا دریافت کنید -> آن را به متغیر محیطی Path اضافه کنید معمولا آدرسی شبیه به این خواهد بود. C:\Program Files\PostgreSQL\18\bin
  • فایل‌های پیکربندی: مسیر دو فایل اصلی پیکربندی پستگرس را برای بخش های بعدی به خاطر بسپارید. معمولا دو فایل postgresql.conf / pg_hba.conf در دایرکتوری C:\Program Files\PostgreSQL\18\data که پوشه اصلی دیتای پستگرس است قرار دارند.

نصب سرویس پستگرس در WSL

نصب PostgreSQL روی Windows Subsystem for Linux (WSL) شامل فعال‌سازی WSL، نصب توزیع Linux (مانند Ubuntu)، و سپس نصب PostgreSQL در محیط Linux است. در اینجا راهنمای گام‌به‌گام آورده شده است:

مرحله ۱: فعال‌سازی Windows Subsystem for Linux (WSL)

۱. باز کردن PowerShell به عنوان Administrator: روی دکمه Start راست‌کلیک کنید و “Windows PowerShell (Admin)” را انتخاب کنید.

۲. فعال‌سازی WSL: دستور زیر را برای فعال‌سازی Windows Subsystem for Linux اجرا کنید:

   dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

۳. فعال‌سازی ویژگی Virtual Machine (برای WSL 2 لازم است): دستور زیر را اجرا کنید:

   dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

۴. راه‌اندازی مجدد کامپیوتر خود را برای تکمیل نصب WSL و به‌روزرسانی به WSL 2.

۵. دانلود و نصب بسته به‌روزرسانی Linux Kernel (برای WSL 2): آخرین بسته را از وب‌سایت Microsoft دانلود و نصب کنید. البته اگر با زدن wsl --version نسخه نمایش داده شده، بزرگتر از ۲ است (مثلا ۲.۶) نیاز به این قسمت و گزینه بعدی ندارید.

۶. تنظیم WSL 2 به عنوان نسخه پیش‌فرض: این دستور را در PowerShell اجرا کنید:

   wsl --set-default-version 2
مرحله ۲: نصب توزیع Linux (Ubuntu)

۱. لیست توزیع‌های Linux موجود: پس از فعال‌سازی WSL در Windows Features، دستور زیر را برای مشاهده توزیع‌های Linux موجود اجرا کنید:

   wsl --list --online

این لیست توزیع‌هایی که می‌توان نصب کرد را نشان می‌دهد.

۲. نصب Ubuntu 24.04: برای نصب Ubuntu 24.04 با نام سفارشی، از دستور زیر استفاده کنید:

   wsl --install -d Ubuntu-24.04 --name sepahram

این دستور Ubuntu 24.04 LTS را با نام “sepahram” دانلود و نصب خواهد کرد. در حین نصب، نیاز به وارد کردن نام کاربر اصلی سیستم و پسورد آن خواهید داشت.

۳. راه‌اندازی Ubuntu: پس از نصب، با استفاده از دستور زیر وارد محیط Linux شوید:

   wsl -d sepahram

۴. نصب PostgreSQL: پس از ورود به محیط Ubuntu، دستورالعمل‌های رسمی نصب Ubuntu/Debian برای PostgreSQL را که در بخش Ubuntu Linux در ادامه توضیح داده شده، دنبال کنید.

مرحله ۳: نصب PostgreSQL روی Ubuntu (WSL)

۱. به‌روزرسانی لیست بسته‌ها: Ubuntu روی WSL خود را باز کنید و با به‌روزرسانی لیست بسته‌ها شروع کنید:

sudo apt update
sudo apt install gnupg2 wget nano

۲. اضافه کردن مخزن PostgreSQL 18 و کلید امضای آن :

# ایمپورت کلید امضای مخزن:
sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

# ایجاد فایل پیکربندی مخزن:
. /etc/os-release
sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list"

لیست بسته‌ها را به‌روزرسانی کنید:

sudo apt update

۳. نصب PostgreSQL: پستگرس را همراه با بسته ‘contrib’ که برخی ابزارهای اضافی و قابلیت‌ها را اضافه می‌کند، نصب کنید:

   sudo apt install postgresql-18 postgresql-contrib-18

۴. تأیید نصب: چک کنید که PostgreSQL در حال اجرا است:

   sudo service postgresql status
   یا
   sudo /etc/init.d/postgresql status

۵. شروع PostgreSQL: اگر در حال اجرا نیست، PostgreSQL را با دستور زیر شروع کنید:

   sudo service postgresql start

۶. تغییر پورت/پیکربندی

   sudo nano /etc/postgresql/18/main/postgresql.conf
   listen_addresses = '*'

   port=5432

۷. تنظیم رمز عبور

در اینجا نحوه تنظیم رمز عبور برای کاربر postgres توضیح داده شده است. فرض میکنیم با یوزر اصلی اوبونتو لاگین کرده‌اید و در خط فرمان WSl قرار دارید:

۱. تغییر به کاربر postgres:
ابتدا به کاربر postgres که حساب سوپر یوزر پیش‌فرض ایجاد شده در طول نصب PostgreSQL است، تغییر دهید:

  sudo -i -u postgres

۲. باز کردن خط فرمان PostgreSQL:
سپس ترمینال تعاملی PostgreSQL را باز کنید تا با حالت local و از طریق سوکت پستگرس به آن متصل شود و نیاز به وارد کردن پستگرس نباشد:

psql

۳. تنظیم رمز عبور:
داخل خط فرمان psql از دستور زیر برای تنظیم رمز عبور جدید استفاده کنید (یا با استفاده از کامند \password):

  ALTER USER postgres WITH PASSWORD 'postgres123';

۴. خروج از PostgreSQL Shell:
اکنون می‌توانید با تایپ دستور زیر از PostgreSQL shell خارج شوید:

  \q

۵. بازگشت به کاربر معمولی خود:
پس از تنظیم رمز عبور، به حساب کاربری معمولی خود برگردید (از session کاربر postgres خارج شوید):

exit

۶. به‌روزرسانی pg_hba.conf (در صورت نیاز):
اگر PostgreSQL شما برای اتصالات محلی از احراز هویت peer استفاده می‌کند، ممکن است نیاز به تغییر فایل pg_hba.conf داشته باشید برای اجازه احراز هویت رمز عبور برای کاربر postgres در صورتی که بخواهید با روش Host متصل شوید.

  sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/18/main/pg_hba.conf
  sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/18/main/pg_hba.conf
  echo "host all all 0.0.0.0/0 scram-sha-256" | sudo tee -a /etc/postgresql/18/main/pg_hba.conf

  sudo service postgresql restart

۷. اتصال با استفاده از رمز عبور جدید:
اکنون هنگام اتصال به PostgreSQL، از رمز عبور جدید تنظیم شده استفاده کنید. اگر از psql استفاده می‌کنید، دستور شبیه به این خواهد بود:

  psql -U postgres -h localhost

در صورت درخواست، رمز عبوری که قبلاً تنظیم کرده‌اید را وارد کنید.

با تنظیم رمز عبور برای کاربر postgres و پیکربندی PostgreSQL برای استفاده از احراز هویت رمز عبور، باید بتوانید بدون مواجه شدن با خطای احراز هویت SCRAM متصل شوید. به یاد داشته باشید که رمز عبور باید ایمن نگه داشته شود و فقط با کاربران مجاز به اشتراک گذاشته شود.

نکات و هشدارها:
  • نسخه ویندوز: اطمینان حاصل کنید که از نسخه‌ای از Windows 10 که از WSL 2 پشتیبانی می‌کند، استفاده می‌کنید (Windows 10 نسخه ۱۹۰۳ یا بالاتر، با Build 18362 یا بالاتر)
  • نیاز به راه‌اندازی مجدد: ممکن است در طول این فرآیند نیاز به راه‌اندازی مجدد کامپیوتر خود داشته باشید.
  • امنیت: همیشه بهترین روش‌های امنیتی را در نظر بگیرید، به ویژه اگر قصد دسترسی به سرور PostgreSQL از خارج محیط WSL خود را دارید.
  • پس از نصب، می‌توانید از PostgreSQL در محیط WSL خود مانند یک سیستم Linux بومی استفاده کنید.

ابزارهای کلاینت و IDEهای PostgreSQL

پس از نصب PostgreSQL، نیاز به ابزارهایی برای مدیریت، توسعه و کار با دیتابیس دارید. این بخش بهترین ابزارها برای کار با PostgreSQL را معرفی می‌کند که هر کدام برای کاربردهای خاصی مناسب هستند.

۱. psql – ابزار رسمی خط فرمان PostgreSQL

psql ابزار رسمی خط فرمان PostgreSQL است که به صورت پیش‌فرض با PostgreSQL نصب می‌شود. این ابزار برای مدیران دیتابیس، قدرتمندترین و سریع‌ترین راه برای کار با PostgreSQL است.

امکانات کلیدی
  • دستورات SQL کامل: اجرای هر نوع کوئری SQL
  • دستورات مدیریتی: مدیریت کاربران، دیتابیس‌ها، مجوزها
  • دستورات متا: نمایش ساختار جداول، ایندکس‌ها، ویوها
  • اجرای اسکریپت‌ها: اجرای فایل‌های SQL
  • خروجی فرمت‌شده: امکان فرمت‌بندی خروجی به صورت جداول، CSV و غیره
  • اتم‌پیلیشن هوشمند: تکمیل خودکار دستورات و نام‌ها
نحوه استفاده
# اتصال به دیتابیس
psql -h localhost -U username -d database_name

# اجرای کوئری
psql -c "SELECT * FROM users LIMIT 5;"

# اجرای فایل SQL
psql -f script.sql
۲. pgAdmin – رابط گرافیکی رسمی PostgreSQL

pgAdmin محبوب‌ترین رابط گرافیکی رایگان برای PostgreSQL است که توسط تیم PostgreSQL توسعه داده می‌شود. این ابزار برای مدیریت کامل دیتابیس طراحی شده است.

امکانات کلیدی
  • مدیریت کامل دیتابیس: ایجاد، ویرایش و حذف دیتابیس‌ها، جداول، ویوها
  • ابزار کوئری پیشرفته: ویرایشگر SQL با syntax highlighting و autocomplete
  • ویرایشگر داده: ویرایش مستقیم داده‌های جداول
  • پشتیبان‌گیری/بازیابی: پشتیبان‌گیری و بازیابی دیتابیس
  • مانیتورینگ: مانیتورینگ عملکرد و لاگ‌ها
  • ابزار ERD: طراحی نمودارهای رابطه‌ای
  • مدیریت افزونه‌ها: مدیریت افزونه‌ها
  • ایمپورت/اکسپورت: پشتیبانی از فرمت‌های مختلف داده
مزایا
  • رایگان و متن‌باز
  • پشتیبانی کامل از تمام ویژگی‌های PostgreSQL
  • رابط کاربری کاربرپسند
  • مستندات گسترده
لینک دانلود

البته pgAdmin معمولا در بسته نصبی ویندوز پستگرس موجود است و می توانید هنگام نصب پستگرس، این ابزار کاربردی را هم انتخاب کنید تا به راحتی روی سیستم شما نصب شود.

۳. pgcli – رابط خط فرمان پیشرفته

pgcli جایگزین مدرن psql است که قابلیت‌های پیشرفته مانند syntax highlighting، autocomplete هوشمند و فرمت‌بندی بهتر خروجی را ارائه می‌دهد.

امکانات کلیدی
  • Syntax Highlighting: رنگ‌بندی هوشمند کد SQL
  • Autocomplete پیشرفته: تکمیل خودکار نام جداول، ستون‌ها و توابع
  • فرمت‌بندی هوشمند خروجی: نمایش نتایج در جداول زیبا
  • پشتیبانی از کوئری‌های چندخطی: پشتیبانی از کوئری‌های چندخطی
  • تاریخچه کوئری: تاریخچه دستورات اجرا شده
  • تکمیل هوشمند: تکمیل بر اساس context
مزایا
  • تجربه کاربری بهتر نسبت به psql
  • سبک‌تر و سریع‌تر
  • مناسب برای توسعه‌دهندگان
نحوه نصب
# نصب با pip
pip install pgcli

# یا با conda
conda install -c conda-forge pgcli
لینک‌های دانلود
۴. DBeaver – رابط گرافیکی چندسکویی

DBeaver ابزاری رایگان و متن‌باز برای کار با انواع دیتابیس‌ها است که از PostgreSQL پشتیبانی کامل دارد. این ابزار برای توسعه‌دهندگانی که با چندین نوع دیتابیس کار می‌کنند، ایده‌آل است.

امکانات کلیدی
  • پشتیبانی از انواع دیتابیس: PostgreSQL، MySQL، Oracle، SQL Server و غیره
  • ویرایشگر کوئری پیشرفته: با syntax highlighting، autocomplete و فرمت‌بندی
  • Visual Query Builder: ساخت کوئری با drag & drop
  • نمودارهای ER: طراحی و نمایش نمودارهای رابطه‌ای
  • ویرایشگر داده: ویرایش مستقیم داده‌ها با قابلیت فیلتر و جستجو
  • اکسپورت/ایمپورت: پشتیبانی از فرمت‌های CSV، SQL، XML و غیره
  • مرورگر دیتابیس: مرور ساختار دیتابیس به صورت درختی
  • الگوهای SQL: کتابخانه کوئری‌های آماده
  • همکاری تیمی: اشتراک‌گذاری workspace
مزایا
  • رایگان و متن‌باز
  • پشتیبانی از انواع دیتابیس
  • رابط کاربری مدرن و کاربرپسند
  • قابلیت اتصال به سرورهای ابری
لینک دانلود
۵. افزونه PostgreSQL برای VS Code (مایکروسافت)

PostgreSQL افزونه رسمی مایکروسافت برای Visual Studio Code است که امکان کار کامل با PostgreSQL را در محبوب‌ترین محیط ویرایشگر کد فراهم می‌کند. این افزونه از قابلیت‌های پیشرفته مانند اتصال به Azure Database و یکپارچگی با GitHub Copilot پشتیبانی می‌کند.

امکانات کلیدی
  • اتصال هوشمند: اتصال به دیتابیس‌های محلی و ابری (Azure Database for PostgreSQL)
  • تصویرسازی Schema: نمایش گرافیکی ساختار دیتابیس
  • ویرایشگر SQL پیشرفته: ویرایشگر SQL با IntelliSense و syntax highlighting
  • اجرای کوئری: اجرای کوئری‌ها با نمایش نتایج در جدول
  • مرورگر دیتابیس: مرور کامل اشیاء دیتابیس (جداول، ویوها، توابع)
  • داشبورد سرور: مانیتورینگ عملکرد سرور
  • یکپارچگی GitHub Copilot: استفاده از هوش مصنوعی برای کمک به کدنویسی SQL
  • ابزارهای Agent Mode: ابزارهای پیشرفته برای ایجاد جداول، طراحی schema و ایمپورت داده
  • Docker PostgreSQL: ایجاد دیتابیس PostgreSQL در Docker با یک کلیک
مزایا
  • یکپارچه با VS Code
  • رایگان
  • قابلیت کار با Azure Database و احراز هویت Entra
  • پشتیبانی از GitHub Copilot برای کمک هوشمند
  • قابلیت ایجاد و مدیریت دیتابیس‌های Docker
نحوه نصب

در VS Code:

  1. Extensions را باز کنید (Ctrl+Shift+X)
  2. “PostgreSQL” را جستجو کنید
  3. افزونه Microsoft PostgreSQL را نصب کنید
لینک دانلود
۶. DataGrip – IDE پیشرفته JetBrains

DataGrip محصولی از شرکت JetBrains (سازندگان IntelliJ IDEA) است که یک IDE تخصصی برای کار با دیتابیس‌ها است. اخیراً برای استفاده شخصی رایگان شده است.

امکانات کلیدی
  • پشتیبانی از ۲۰+ نوع دیتابیس: PostgreSQL، MySQL، Oracle، SQL Server و غیره
  • ویرایشگر SQL هوشمند: با IntelliSense پیشرفته، refactor و تحلیل کد
  • Visual Query Builder: ساخت کوئری‌های پیچیده به صورت گرافیکی
  • نمودارهای دیتابیس: طراحی و تحلیل نمودارهای رابطه‌ای
  • تکمیل کد: تکمیل هوشمند بر اساس schema
  • Refactoring: تغییر ایمن نام جداول، ستون‌ها و غیره
  • یکپارچگی کنترل نسخه: یکپارچه با Git
  • تولید کد: تولید کد SQL از نمودارها
  • تحلیل عملکرد: تحلیل و بهینه‌سازی کوئری‌ها
  • همکاری تیمی: اشتراک‌گذاری و همکاری تیمی
مزایا
  • رابط کاربری حرفه‌ای و قدرتمند
  • ابزارهای پیشرفته توسعه
  • پشتیبانی از انواع دیتابیس
  • یکپارچه با دیگر محصولات JetBrains
لینک دانلود

مقایسه ابزارها

ابزاررابط کاربریقیمتبهترین برایپیچیدگی یادگیری
psqlخط فرمانرایگانDBA حرفه‌ایبالا
pgAdminگرافیکیرایگانمدیریت دیتابیسمتوسط
pgcliCLI پیشرفتهرایگانتوسعه‌دهندگانمتوسط
DBeaverگرافیکیرایگانکار چند دیتابیسکم
افزونه VS Codeویرایشگر کدرایگانتوسعه در VS Codeکم
DataGripIDE پیشرفتهرایگان برای استفاده شخصیتوسعه حرفه‌ایمتوسط

نکات انتخاب ابزار مناسب

برای DBA و متخصصان سیستم:
  • psql: اگر به حداکثر کنترل و سرعت نیاز دارید
  • pgAdmin: اگر به رابط گرافیکی نیاز دارید
برای توسعه‌دهندگان:
  • pgcli: اگر ترجیح می‌دهید کار خط فرمان انجام دهید
  • افزونه VS Code: اگر در محیط VS Code کار می‌کنید
  • DataGrip: اگر به ابزارهای پیشرفته توسعه نیاز دارید
برای کاربران عمومی:
  • DBeaver: اگر با انواع دیتابیس کار می‌کنید
  • pgAdmin: اگر فقط با PostgreSQL کار می‌کنید
نتیجه‌گیری ابزارها

انتخاب ابزار به نیازها و تجربه شما بستگی دارد. برای مبتدیان، پیشنهاد می‌کنیم با pgAdmin یا DBeaver شروع کنید و با کسب تجربه، از ابزارهای پیشرفته‌تری مانند DataGrip استفاده کنید. هر کدام از این ابزارها نقاط قوت خاص خود را دارند و می‌توانید آنها را بر اساس نیاز پروژه خود، به صورت ترکیبی استفاده کنید.

نصب Postgres با استفاده از Docker

آموزش نصب PostgreSQL با استفاده از Docker راهی عالی برای ارائه محیطی ثابت و ایزوله در سیستم‌های مختلف است. قبل از ادامه، اطمینان حاصل کنید که کاربران Docker را روی ماشین‌های خود نصب دارند. Docker Desktop برای ویندوز و macOS استفاده می‌شود، در حالی که Docker Engine برای سیستم‌های Linux استفاده می‌شود.

مرحله ۱: نصب Docker
  • ویندوز/macOS: از ابزار Docker Desktop (وب‌سایت رسمی Docker) استفاده کرده و آنرا دانلود و نصب کنید.
  • برای نصب در سایر سیستم عامل‌ها به راهنمای نصب داکر در وب سایت اصلی آن مراجعه کنید.
مرحله ۲: ایجاد فایل Docker-Compose برای PostgreSQL

۱. ایجاد فایل Docker-Compose: فایلی با نام docker-compose.yml در دایرکتوری مورد نظر خود ایجاد کنید.

۲. پیکربندی PostgreSQL در Docker-Compose:

version: '3.4'
services:
  postgres:
    container_name: postgres
    hostname: postgres_server
    image: docker.arvancloud.ir/postgres:18
    volumes:
      # TUTORIAL CONFIG: PostgreSQL 18+ uses versioned subdirectories
      # Mount /var/lib/postgresql - PostgreSQL creates /var/lib/postgresql/18/docker
      # Files accessible at ./postgres-data/18/docker/ on host
      - ./postgres-data:/var/lib/postgresql  # Bind mount for easy file exploration
      - ./postgres-init:/docker-entrypoint-initdb.d  # Mounting the init script
      #- ./dump:/dump
    environment:
      - POSTGRES_PASSWORD=123
      - POSTGRES_USER=postgres
      - POSTGRES_DB=dblab
      - POSTGRES_HOST_AUTH_METHOD=trust
    command:
      # TUTORIAL CONFIG: PostgreSQL with replication-ready settings for future tutorials
      - postgres
      - -c
      - wal_level=replica            # Enable replication (writes more WAL)
      - -c
      - max_wal_senders=10           # Allow up to 10 replication connections
      - -c
      - max_replication_slots=10     # Allow up to 10 replication slots
    networks:
      - services
    ports:
      - ۵۴۳۴:۵۴۳۲
    restart: always

  pgadmin:
    # https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
    container_name: pgadmin4
    hostname: pgadmin4
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@admin.com
      PGADMIN_DEFAULT_PASSWORD: pgadmin123
    volumes:
      #- ./pgadmin_data:/data
      - pgadmin_data:/var/lib/pgadmin
    ports:
      - "۸۰۸۰:۸۰"
    networks:
      - services 

volumes:
  # db_data:  # Commented out - using bind mount instead for tutorial
  pgadmin_data:
networks: 
  services:
    name: ${APP_NAME:-sepahram}_network

۳. توضیح:

  • image: postgres:18 استفاده از تصویر رسمی PostgreSQL، نسخه ۱۸ را مشخص می‌کند.
  • environment برای تنظیم متغیرهای محیطی داخل container استفاده می‌شود، مانند دیتابیس پیش‌فرض، کاربر و رمز عبور.
  • volumes برای ماندگاری داده‌های دیتابیس استفاده می‌شود. PostgreSQL 18+ زیردایرکتوری‌های نسخه‌دار ایجاد می‌کند (مثل /var/lib/postgresql/18/docker) که در ./data/18/docker/ روی ماشین host شما قابل دسترسی خواهند بود.
  • ports پورت پیش‌فرض PostgreSQL (5432) را داخل container به هاست map می‌کند.
مرحله ۳: اجرای Docker-Compose

۱. پیمایش به دایرکتوری: ترمینالی را باز کنید و به دایرکتوری حاوی فایل docker-compose.yml خود وارد شوید.

۲. شروع سرویس PostgreSQL:

   docker-compose up -d

این دستور container PostgreSQL را در حالت detached (در حال اجرا در پس‌زمینه) شروع می‌کند.

مرحله ۴: دسترسی به PostgreSQL
  • می‌توانید با استفاده از نام کاربری و رمز عبور مشخص شده به PostgreSQL روی localhost:5432 متصل شوید.
مرحله ۵: راه‌اندازی pgAdmin وب

اگر می‌خواهید از رابط وب pgAdmin استفاده کنید، می‌توانید از سرویس pgAdmin در فایل docker-compose.yml بالا استفاده کنید.

۲. شروع سرویس‌ها:

   docker-compose up -d

۳. دسترسی به pgAdmin وب: مرورگر خود را باز کنید و به http://localhost:8080 بروید

  • ایمیل: admin@example.com
  • رمز عبور: admin123

۴. اتصال به PostgreSQL: در رابط وب pgAdmin، روی “Servers” راست‌کلیک کنید → “Create” → “Server” و وارد کنید:

  • نام هاست/آدرس: postgres_server
  • پورت: ۵۴۳۴
  • نام کاربری: postgres
  • رمز عبور: ۱۲۳
نکات و هشدارها:
  • نسخه Docker Compose: اطمینان حاصل کنید که نسخه Docker Compose در فایل docker-compose.yml شما با نصب Docker Compose شما سازگار است.
  • ماندگاری داده: دایرکتوری ./data روی ماشین host شما ایجاد خواهد شد تا ماندگاری داده را تضمین کند. در مورد پشتیبان‌گیری و امنیت آن مراقب باشید.
  • امنیت: از رمزهای عبور ساده خودداری کنید. برای محیط‌های production، رویکردهای امن‌تری مانند Docker secrets را در نظر بگیرید.
  • تخصیص منابع Docker: containerهای Docker منابع سیستم را به اشتراک می‌گذارند. اطمینان حاصل کنید که تنظیمات Docker شما منابع کافی (CPU، حافظه) را برای PostgreSQL تخصیص می‌دهد، به ویژه اگر روی ماشین توسعه با منابع محدود اجرا می‌کنید.

این راه‌اندازی نصب PostgreSQL پایه‌ای را ارائه می‌دهد که برای توسعه و تست مناسب است. برای محیط‌های production، پیکربندی‌های اضافی برای امنیت، عملکرد و مانیتورینگ توصیه می‌شود.

🎥 فیلم آموزشی

مراحل مختلف نصب و راه‌اندازی پستگرس در ویندوز و WSL و همچنین به کمک داکر در فیلم آموزشی زیر با جزییات مناسب آموزش داده شده است. همچنین نصب و راه اندازی اولیه pgAdmin و همچنین DBeaver‍ هم توضیح داده شده است.

نکته : اگر احیانا فیلم آموزشی را در قسمت زیر مشاهده نمی‌کنید، ابتدا اطمینان حاصل کنید که با آی پی ایران در حال مشاهده آن هستید و اگر مشکل حل نشد، یک اینترنت پروایدر دیگر را امتحان کنید.

فروشگاه
جستجو
دوره ها

لطفا کلمات کلیدی را وارد کنید