استفاده از دو نسخه PostgreSQL روی مک


#1

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

چطور می شه از چند نسخه دیتابیس پستگرس در مک استفاده کرد ؟! سرچ های مسخره ای می یاد تو گوگل


#2

داکر استفاده کنی بهتر نیست ؟


#3

سلام.
از Homebrew استفاده کردی؟ با Homebrew راحته.


#4

سمیر جان الان ۲۰۰ مگ رم خالی دارم و وقتی داکر می یاد روی مک بوکم یک نیم گیگ رم می گیره امکان استفادشو ندارم متاسفانه


#5

درود متاسفانه چون از اول نسخه گرافیکی نصب کردم و روش دیتابیس دارم نسخه بعدیشم به صورت گرافیکی با پکیج اصلیش نصب کردم

الان می تونم به برنامه ام پرت نسخه جدید بدم روی اون بسازه ولی در کل به ترمینال نمی تونم حالی کنم که نسخه جدید منو بشناسه


#6

متوجه نشدم کامل ولی یه راه خوبش اینه که چند وقت پیش امتحان کردم:

برای راه اندازی :

  • اول برای اینکه درگیر مشکلات اینکه کدام default هستش و این چیزا، بهتره PostreSQL رو کلا پاک کنی :
    brew uninstall postrgresql

  • بعدش باید این repo رو tap کنی (https://github.com/petere/homebrew-postgresql) :
    brew tap petere/postgresql

  • الان میتانی نسخه های مختلف نصب کنی :
    brew install postgresql-9.3
    brew install postgresql-9.6

برای استفاده :

  • یه راه اینه که مستقیما binary ها رو اجرا کنی که راه جالبی نیست.

  • راه بهتر و راحت تر استفاده از پکیج postgresql-common هستش که داخل همون repo که tap کردیم آماده استفاده هستش.

راه استفادشم اینه :

  • اول باید یه database cluster بسازی (اینجا cluster به معنی چند سرور نیست، اینجا یعنی یه مجموعه database که به وسیله یک سرور manage میشن)، که باید version و اسمی که میخوای رو بعد از دستور pg_createcluster بنویسی، خودش هم port اختصاص میده براش (از 5432 شروع میکنه و اگه در دسترس نبود increament میشه):

  • لیست cluster ها رو هم با pg_lsclusters میتانی به تفکیک version و port و status ببینی :
    2

  • برای پاک کردن یه cluster هم از pg_dropcluster میشه استفاده کرد، بعد از دستور، version و اسم cluster رو مینویسی.

  • برای start، stop، restart و reload کردن هم از pg_ctlcluster استفاده کن، version و اسم و کاری که میخوای رو بعد از دستور وارد کن :
    pg_ctlcluster 9.6 main start


#7

من با داکر این مشکلو برای همیشه حل کردم، فقط به شرطی که دوباره نخوای با ip کانتینر کار کنی. هر کدومو روی پورت متفاوت بزار

127.0.0.1 localhost database-server 

sudo docker run -d —name postgres_9 -p 5432:5432 -e POSTGRES_PASSWORD=password postgres:9

sudo docker run -d —name postgres_11 -p 5433:5432 -e POSTGRES_PASSWORD=password postgres:11

#8

پاسخ تکمیل شد :point_up:
فقط volume توی کد بالا نیست.

-v psql9-data:/var/lib/postgresql


-v psql11-data:/var/lib/postgresql

اگر من باشم یه compose file هم براش درست میکنم


#9

بنظر من با 200 مگ رم که باقی مونده فقط موسیقی گوش کن :wink:


#10

بلخره تو محدودیت هاست که پیشرفت حاصل می شه :smiley:


#11

image