پوسٹگریس گولانگ

Pws Grys Gwlang



اکثر گولانگ کے نام سے جانا جاتا ہے، گو ایک پروگرامنگ لینگویج ہے جو اوپن سورس، کمپائلڈ اور سٹیٹلی ٹائپ کی جاتی ہے جسے گوگل نے بنایا ہے۔ اسے سمجھنے میں آسان، تیز، واضح اور اعلیٰ کارکردگی کے لیے بنایا گیا ہے۔

PostgreSQL، جسے اکثر صرف Postgres کہا جاتا ہے، ایک طاقتور، اوپن سورس آبجیکٹ-ریلیشنل ڈیٹا بیس سسٹم ہے۔ 30 سال سے زیادہ فعال ترقی کے ساتھ، اس نے اپنی مضبوطی، جدید خصوصیات، اور کافی معیارات کی تعمیل کے لیے ایک مضبوط شہرت حاصل کی ہے۔

یہ وسیع کام کے بوجھ کو سنبھالنے کے لیے ڈیزائن کیا گیا ہے، سنگل مشینوں سے لے کر ڈیٹا گوداموں یا بہت سے ہم آہنگ صارفین کے ساتھ ویب سروسز تک۔ یہ لین دین کی سالمیت اور استحکام فراہم کرتا ہے اور ڈیٹا کی مختلف اقسام اور طاقتور، لچکدار ڈیٹا ہیرا پھیری کی زبان کی حمایت کرتا ہے۔







یہ ٹیوٹوریل ہمیں گو ایپلیکیشن کے ساتھ PostgreSQL سرور کو کنفیگر اور منسلک کرنے کا طریقہ سکھاتا ہے۔



تقاضے:

پروگرامنگ لینگویج پر جائیں۔ - یہ یقینی بناتا ہے کہ گو کمپائلر آپ کی مشین پر انسٹال ہے۔



PostgreSQL ڈیٹا بیس - آپ کو PostgreSQL انسٹال کرنے کی بھی ضرورت ہے۔ آپ اسے براہ راست اپنی مشین پر انسٹال کر سکتے ہیں یا زیادہ سیدھے سیٹ اپ کے لیے ڈوکر کنٹینر استعمال کر سکتے ہیں۔





ڈویلپمنٹ ٹولز - ایک مربوط ترقیاتی ماحول (IDE) جو گو کو سپورٹ کرتا ہے جیسے ویژول اسٹوڈیو کوڈ، GoLand، وغیرہ۔

ایس کیو ایل اور گو کا بنیادی علم – PostgreSQL ڈیٹا بیس کے ساتھ تعامل کرنے کے لیے، آپ کو SQL اور مختلف سوالات کو سمجھنا چاہیے جو آپ کو انجام دینے کی ضرورت ہے۔ آپ کو گو زبان کی بنیادی سمجھ کی بھی ضرورت ہے۔



دی گئی ضروریات کو پورا کرنے کے ساتھ، ہم درج ذیل مراحل پر آگے بڑھ سکتے ہیں۔

پروجیکٹ سیٹ اپ

آئیے اپنے پروجیکٹ ڈائرکٹری ڈھانچے کو ترتیب دے کر شروع کریں۔ مین ڈائرکٹری بنائیں جہاں آپ کو پروجیکٹ سورس کوڈ کو اسٹور کرنے کی ضرورت ہے۔

$ mkdir golang_postgres

ڈائرکٹری میں جائیں اور ایک نیا گو ماڈیول شروع کریں۔

$ سی ڈی golang_postgres && موڈ شروع کریں مین

مطلوبہ ڈرائیورز انسٹال کریں۔

PostgreSQL ڈیٹا بیس کے ساتھ تعامل کرنے کے لیے، ہمیں Go پروگرامنگ لینگویج کے لیے PostgreSQL ڈرائیور کی ضرورت ہے۔

اس ٹیوٹوریل کے لیے، ہم pq ڈرائیور استعمال کرتے ہیں جو PostgreSQL ڈیٹا بیس کے ساتھ کام کرنے کے لیے خصوصیات کی ایک وسیع صف پیش کرتا ہے۔

آپ اسے درج ذیل کمانڈ کو چلا کر انسٹال کر سکتے ہیں۔

github.com پر جائیں / lib / pq

ایک ڈیٹا بیس بنائیں

اگلا مرحلہ ایک نیا PostgreSQL ڈیٹا بیس بنانا ہے۔ ایک بار پھر، ہم اسے PostgreSQL شیل میں کر سکتے ہیں۔

$ پی ایس کیو ایل -IN پوسٹگریس

یہ کمانڈ آپ کو پوسٹگریس کے پاس ورڈ کا اشارہ دیتی ہے۔ لاگ ان ہونے کے بعد، نیا ڈیٹا بیس شروع کرنے کے لیے 'ڈیٹا بیس بنائیں' کمانڈ چلائیں:

postgres=# ڈیٹا بیس گولانگ بنائیں؛
ڈیٹا بیس بنائیں

دی گئی کمانڈ ایک نیا ڈیٹا بیس بناتی ہے جسے 'گولنگ' کہتے ہیں۔ بلا جھجھک ڈیٹا بیس کا نام اپنے مطلوبہ نام سے بدل دیں۔

اس کے بعد آپ تصدیق کر سکتے ہیں کہ ڈیٹا بیس اس سے جڑ کر کامیابی کے ساتھ بنایا گیا ہے۔

postgres=# \c گولانگ؛
اب آپ ڈیٹا بیس 'گولنگ' سے بطور صارف 'پوسٹگریس' جڑ گئے ہیں۔

اگلا، وہ ٹیبل سیٹ اپ کریں جہاں آپ ڈیٹا اسٹور کرنا چاہتے ہیں۔ ہم اس ٹیوٹوریل کے لیے ایک سادہ ٹیبل بناتے ہیں جو سیشن کی معلومات کو محفوظ کرتا ہے۔

ٹیبل بنائیں db_clients (
آئی ڈی سیریل پرائمری کلید،
نام VARCHAR(100) NOT NULL،
سیشن کا وقت ٹائم سٹیمپ خالی نہیں،
number_of_queries INT DEFAULT 0،
فعال_ ریاست بولین ڈیفالٹ غلط
);

دی گئی استفسار کو 'db_clients' کے نام سے ایک نیا ٹیبل بنانا چاہیے جو ان کلائنٹس کے بارے میں معلومات کو محفوظ کرتا ہے جو کسی دیئے گئے ڈیٹا بیس سرور میں لاگ ان ہوتے ہیں۔

Go App کو PostgreSQL کے ساتھ مربوط کریں۔

ایک بار جب ہم ڈیٹا بیس اور ڈیٹا بیس ٹیبل کو سیٹ اپ کر لیتے ہیں، تو ہم آگے بڑھ سکتے ہیں اور اپنی گو ایپلیکیشن کو PostgreSQL سرور کے ساتھ جوڑنے کا طریقہ سیکھ سکتے ہیں۔

اپنے پروجیکٹ کی جڑ میں 'main.go' فائل بنا کر شروع کریں:

$ چھو main.go

اگلا، اپنی پسند کے ٹیکسٹ ایڈیٹر کے ساتھ فائل میں ترمیم کریں:

$ کیونکہ main.go

'main.go' فائل میں، سورس کوڈ شامل کریں جیسا کہ درج ذیل میں دکھایا گیا ہے:

اہم پیکیج

درآمد (
'ڈیٹا بیس/sql'
'fmt'
'لاگ'

_ 'github.com/lib/pq'
)

فنک مین ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db، err := sql.Open ( 'پوسٹگریس' , connStr )
اگر غلطی ! = صفر {
لاگ۔ مہلک ( غلطی )
}

اگر ایرر = ڈی بی پنگ ( ) ; غلطی ! = صفر {
لاگ۔ مہلک ( غلطی )
}

fmt.Println ( 'ڈیٹا بیس سے منسلک' )
}

پچھلے کوڈ میں، ہم مطلوبہ ماڈیولز درآمد کرکے شروع کرتے ہیں۔ پھر ہم مین فنکشن کی وضاحت کرتے ہیں۔ آخر میں، مرکزی فنکشن میں، ہم کنکشن سٹرنگ کی وضاحت کرتے ہیں جو ہمیں ٹارگٹ ہوسٹ، ڈیٹا بیس صارف، ڈیٹا بیس پاس ورڈ، اور اصل ہدف ڈیٹا بیس کی وضاحت کرنے کی اجازت دیتا ہے۔

ماڈیول کنکشن سٹرنگ میں درج ذیل پیرامیٹرز کی حمایت کرتا ہے:

  • dbname - ڈیٹا بیس کا نام جس سے جڑنا ہے۔
  • صارف - بطور صارف سائن ان کرنا۔
  • پاس ورڈ - صارف کا پاس ورڈ۔
  • میزبان - جس میزبان سے جڑنا ہے۔ '/' سے شروع ہونے والی اقدار یونکس ڈومین ساکٹ کے لیے ہیں (پہلے سے طے شدہ لوکل ہوسٹ ہے)۔
  • پورٹ - جس پورٹ سے منسلک ہونا ہے (پہلے سے طے شدہ 5432 ہے)۔
  • sslmode - SSL استعمال کرنا ہے یا نہیں (پہلے سے طے شدہ کی ضرورت ہے؛ یہ libpq کے لیے ڈیفالٹ نہیں ہے)۔
  • fallback_application_name - ایک ایپلیکیشن_نام اگر فراہم نہ کیا گیا ہو تو واپس آنا ہے۔
  • connect_timeout - سیکنڈوں میں کنکشن کا زیادہ سے زیادہ انتظار۔ صفر یا متعین کا مطلب غیر معینہ مدت تک انتظار کرنا ہے۔
  • sslcert - سرٹیفکیٹ فائل کا مقام۔ فائل میں PEM انکوڈ شدہ ڈیٹا ہونا ضروری ہے۔
  • sslkey - کلیدی فائل کا مقام۔ فائل میں PEM انکوڈ شدہ ڈیٹا ہونا ضروری ہے۔
  • sslrootcert - روٹ سرٹیفکیٹ فائل کا مقام۔ فائل میں PEM انکوڈ شدہ ڈیٹا ہونا ضروری ہے۔

آپ ضرورت کے مطابق اپنی ٹارگٹ کنکشن کی خصوصیات کو ترتیب دے سکتے ہیں۔ SSL اور قبول شدہ SSLMode پیرامیٹرز کو ترتیب دینے کے لیے، ہمارے ٹیوٹوریل کو چیک کریں۔ https://linuxhint.com/postgres-sslmode .

کنکشن کی خصوصیات سے مطمئن ہونے کے بعد، آپ یہ جانچنے کے لیے پچھلا کوڈ چلا سکتے ہیں کہ آیا کنکشن قائم ہوا ہے۔

جاؤ بھاگو۔\main.go

کنکشن پر، آپ کو درج ذیل آؤٹ پٹ ملنا چاہیے:

ڈیٹا بیس سے منسلک ہے۔

PostgreSQL ٹیبل میں ڈیٹا داخل کریں۔

اگلا مرحلہ اس ٹیبل میں نمونہ ڈیٹا داخل کرنا ہے جو ہم نے پہلے بنایا تھا۔ ہم داخل کرنے کے سوالات کو سٹرنگ لٹریل کے طور پر بیان کر کے ایسا کر سکتے ہیں اور پھر ہدف کے استفسار کو چلانے کے لیے db.Exec() فنکشن کا استعمال کر سکتے ہیں۔

کوڈ درج ذیل ہے:

---
insertStatement := `db_clients میں داخل کریں (نام، سیشن_ٹائم، نمبر_آف_سوئریز، فعال_اسٹیٹ)
قدریں
('psql', '2023-05-26 10:15:00', 10, سچ)
('datagrip', '2023-05-26 09:30:00', 5, سچ)
('dbeaver', '2023-05-26 11:00:00', 20, سچ)
('ورک بینچ'، '2023-05-26 14:45:00'، 15، غلط)
('ریموٹ'، '2023-05-26 13:20:00'، 8، سچ)؛`

_, err = db.Exec(insertStatement)
اگر غلطی ہو تو! = صفر {
log.Fatal(غلطی)
}

اگر آپ پچھلا کوڈ چلاتے ہیں، تو اسے ٹارگٹ ٹیبل میں مخصوص ریکارڈ داخل کرنا چاہیے۔

PostgreSQL استفسار کا ڈیٹا

ٹیبل سے قطاروں سے استفسار کرنے کے لیے، ہم سلیکٹ اسٹیٹمنٹ کو سٹرنگ کے طور پر بیان کر سکتے ہیں اور اسے چلانے کے لیے db.Query() کا استعمال کر سکتے ہیں۔ ہم Next() فنکشن کا استعمال کرتے ہوئے ٹیبل کی قطاروں پر اعادہ کر سکتے ہیں اور انہیں پرنٹ آؤٹ کر سکتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے۔

قطاریں، غلطی := db.Query ( 'منتخب کریں * db_clients سے' )
اگر غلطی ! = صفر {
لاگ۔ مہلک ( غلطی )
}
قطاریں ملتوی کریں۔ بند کریں۔ ( )

کے لیے قطار۔ اگلا ( ) {
تھا آئی ڈی int
var نام کی تار
var سیشن ٹائم ٹائم۔ ٹائم
var numberOfQueries int
var ایکٹیو اسٹیٹ بول

err := rows.Scan ( اور آئی ڈی ، اور نام اور سیشن کا وقت، اور سوالات کی تعداد، اور فعال ریاست )
اگر غلطی ! = صفر {
لاگ۔ مہلک ( غلطی )
}

fmt.Printf ( 'ID: %d، نام: %s، سیشن کا وقت: %s، سوالات کی تعداد: %d، فعال حالت: %t \n ' ، آئی ڈی ، نام، سیشن ٹائم، نمبر آف کوئریز، ایکٹو اسٹیٹ )
}

اگر err = rows.Err ( ) ; غلطی ! = صفر {
لاگ۔ مہلک ( غلطی )
}

ایک بار جب ہم پچھلے کوڈ کو چلاتے ہیں، تو اسے db_clients ٹیبل سے تمام قطاروں کو پرنٹ کرنا چاہئے جیسا کہ مندرجہ ذیل مثال کے آؤٹ پٹ میں دکھایا گیا ہے:

وہاں آپ کے پاس ہے!

نتیجہ

ہم نے دریافت کیا کہ ہم گولانگ کا استعمال کرتے ہوئے PostgreSQL ڈیٹا بیس کو مربوط کرنے اور استفسار کرنے کے لیے pq پیکیج کا استعمال کیسے کر سکتے ہیں۔