পোস্টগ্রেস গোলং

Postagresa Golam



প্রায়শই গোলং নামে পরিচিত, গো হল একটি প্রোগ্রামিং ভাষা যা ওপেন সোর্স, সংকলিত এবং স্ট্যাটিকলি টাইপ করা হয় যা Google দ্বারা তৈরি করা হয়। এটি বোঝা সহজ, দ্রুত, পরিষ্কার এবং উচ্চ পারফরম্যান্স করার জন্য তৈরি করা হয়েছে।

PostgreSQL, প্রায়ই পোস্টগ্রেস হিসাবে উল্লেখ করা হয়, একটি শক্তিশালী, ওপেন সোর্স অবজেক্ট-রিলেশনাল ডাটাবেস সিস্টেম। 30 বছরেরও বেশি সক্রিয় বিকাশের সাথে, এটি তার দৃঢ়তা, উন্নত বৈশিষ্ট্য এবং যথেষ্ট মান সম্মতির জন্য একটি শক্তিশালী খ্যাতি অর্জন করেছে।

এটি একক মেশিন থেকে ডেটা গুদাম বা অনেক সমসাময়িক ব্যবহারকারীদের সাথে ওয়েব পরিষেবা পর্যন্ত বিস্তৃত কাজের চাপগুলি পরিচালনা করার জন্য ডিজাইন করা হয়েছে। এটি লেনদেনের অখণ্ডতা এবং স্থায়িত্ব প্রদান করে এবং বিভিন্ন উন্নত ডেটা প্রকার এবং শক্তিশালী, নমনীয় ডেটা ম্যানিপুলেশন ভাষা সমর্থন করে।







এই টিউটোরিয়ালটি আমাদের শেখায় কিভাবে একটি Go অ্যাপ্লিকেশনের সাথে একটি PostgreSQL সার্ভার কনফিগার এবং সংযোগ করতে হয়।



প্রয়োজনীয়তা:

প্রোগ্রামিং ল্যাঙ্গুয়েজে যান - এটি নিশ্চিত করে যে আপনার মেশিনে Go কম্পাইলার ইনস্টল করা আছে।



PostgreSQL ডাটাবেস - এছাড়াও আপনাকে PostgreSQL ইনস্টল করতে হবে। আপনি এটি সরাসরি আপনার মেশিনে ইনস্টল করতে পারেন বা আরও সোজা সেটআপের জন্য একটি ডকার কন্টেইনার ব্যবহার করতে পারেন।





ডেভেলপমেন্ট টুলস - একটি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (আইডিই) যা ভিজ্যুয়াল স্টুডিও কোড, গোল্যান্ড ইত্যাদির মতো গো সমর্থন করে।

এসকিউএল এবং গো এর প্রাথমিক জ্ঞান – PostgreSQL ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে, আপনাকে অবশ্যই এসকিউএল এবং বিভিন্ন কোয়েরি বুঝতে হবে যা আপনাকে করতে হবে। আপনার গো ভাষার একটি প্রাথমিক বোঝারও প্রয়োজন।



প্রদত্ত প্রয়োজনীয়তা পূরণের সাথে, আমরা নিম্নলিখিত পদক্ষেপগুলিতে এগিয়ে যেতে পারি।

প্রকল্প সেটআপ

আমাদের প্রকল্প ডিরেক্টরি কাঠামো সেট আপ করে শুরু করা যাক। মূল ডিরেক্টরি তৈরি করুন যেখানে আপনাকে প্রকল্পের উত্স কোড সংরক্ষণ করতে হবে।

$ mkdir golang_postgres

ডিরেক্টরিতে নেভিগেট করুন এবং একটি নতুন Go মডিউল শুরু করুন।

$ সিডি golang_postgres && mod init প্রধান যান

প্রয়োজনীয় ড্রাইভার ইনস্টল করুন

PostgreSQL ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য, Go প্রোগ্রামিং ভাষার জন্য আমাদের একটি PostgreSQL ড্রাইভার প্রয়োজন।

এই টিউটোরিয়ালের জন্য, আমরা pq ড্রাইভার ব্যবহার করি যা PostgreSQL ডাটাবেসের সাথে কাজ করার জন্য বিস্তৃত বৈশিষ্ট্যের অফার করে।

আপনি নিম্নলিখিত কমান্ডটি চালিয়ে এটি ইনস্টল করতে পারেন:

github.com পেতে যান / lib / pq

একটি ডাটাবেস তৈরি করুন

পরবর্তী ধাপ হল একটি নতুন PostgreSQL ডাটাবেস তৈরি করা। আবার, আমরা PostgreSQL শেলে এটি করতে পারি।

$ পিএসকিউএল -ভিতরে পোস্টগ্রেস

এই কমান্ডটি আপনাকে পোস্টগ্রেসের পাসওয়ার্ডের জন্য অনুরোধ করে। একবার লগ করা হলে, একটি নতুন ডাটাবেস শুরু করতে 'ডেটাবেস তৈরি করুন' কমান্ডটি চালান:

postgres=# ডাটাবেস গোলং তৈরি করুন;
ডেটাবেস তৈরি করুন

প্রদত্ত কমান্ডটি 'গোলাং' নামে একটি নতুন ডাটাবেস তৈরি করে। আপনার পছন্দসই নামের সাথে ডাটাবেসের নাম প্রতিস্থাপন করতে দ্বিধা বোধ করুন।

তারপর আপনি যাচাই করতে পারেন যে ডাটাবেসটি এর সাথে সংযোগ করে সফলভাবে তৈরি হয়েছে।

postgres=# \c গোলং;
আপনি এখন ব্যবহারকারী 'পোস্টগ্রেস' হিসাবে ডাটাবেস 'গোলাং' এর সাথে সংযুক্ত আছেন।

এরপরে, টেবিলটি সেট আপ করুন যেখানে আপনি ডেটা সংরক্ষণ করতে চান। আমরা এই টিউটোরিয়ালের জন্য একটি সাধারণ টেবিল তৈরি করি যা সেশনের তথ্য সংরক্ষণ করে।

টেবিল তৈরি করুন db_clients (
আইডি সিরিয়াল প্রাথমিক কী,
নাম VARCHAR(100) NOT NULL,
সেশন_টাইম টাইমস্ট্যাম্প শূন্য নয়,
number_of_queries INT DEFAULT 0,
সক্রিয়_রাষ্ট্র বুলিয়ান ডিফল্ট মিথ্যা
);

প্রদত্ত ক্যোয়ারীটি 'db_clients' নামে একটি নতুন টেবিল তৈরি করা উচিত যা একটি প্রদত্ত ডাটাবেস সার্ভারে লগ ইন করা ক্লায়েন্ট সম্পর্কে একটি তথ্য সংরক্ষণ করে।

PostgreSQL এর সাথে Go অ্যাপটি সংযুক্ত করুন

একবার আমরা ডাটাবেস এবং ডাটাবেস টেবিল সেটআপ করলে, আমরা এগিয়ে যেতে পারি এবং পোস্টগ্রেএসকিউএল সার্ভারের সাথে আমাদের গো অ্যাপ্লিকেশনটিকে কীভাবে সংযুক্ত করতে হয় তা শিখতে পারি।

আপনার প্রকল্পের রুটে একটি 'main.go' ফাইল তৈরি করে শুরু করুন:

$ স্পর্শ main.go

এরপরে, আপনার পছন্দের পাঠ্য সম্পাদকের সাথে ফাইলটি সম্পাদনা করুন:

$ কারণ main.go

“main.go” ফাইলে, সোর্স কোডটি যোগ করুন যেমনটি দেখানো হয়েছে:

প্যাকেজ প্রধান

আমদানি (
'ডাটাবেস/এসকিউএল'
'fmt'
'লগ'

_ 'github.com/lib/pq'
)

ফাংশন প্রধান ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql. খুলুন ( 'পোস্টগ্রেস' , connStr )
যদি ভুল ! = শূন্য {
লগ। মারাত্মক ( ভুল )
}

যদি err = db.Ping ( ) ; ভুল ! = শূন্য {
লগ। মারাত্মক ( ভুল )
}

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, সত্য),
('ডেটাগ্রিপ', '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(ইনসার্ট স্টেটমেন্ট)
যদি ভুল হয়!= শূন্য {
লগ. মারাত্মক(ভুল)
}

আপনি যদি পূর্ববর্তী কোডটি চালান, তবে এটি লক্ষ্য টেবিলে নির্দিষ্ট রেকর্ডগুলি সন্নিবেশ করা উচিত।

PostgreSQL কোয়েরি ডেটা

টেবিল থেকে সারিগুলি জিজ্ঞাসা করতে, আমরা নির্বাচন বিবৃতিটিকে একটি স্ট্রিং হিসাবে সংজ্ঞায়িত করতে পারি এবং এটি চালানোর জন্য db.Query() ব্যবহার করতে পারি। আমরা নেক্সট() ফাংশন ব্যবহার করে টেবিলের সারির উপর পুনরাবৃত্তি করতে পারি এবং নিচের মত করে প্রিন্ট আউট করতে পারি:

সারি, ত্রুটি := db.Query ( 'ডিবি_ক্লায়েন্ট থেকে * নির্বাচন করুন' )
যদি ভুল ! = শূন্য {
লগ। মারাত্মক ( ভুল )
}
সারি বিলম্বিত করুন. বন্ধ করুন ( )

জন্য সারি।পরবর্তী ( ) {
ছিল আইডি int
var নামের স্ট্রিং
var sessionTime time.Time
var numberOfQuery int
var activeState bool

ত্রুটি := সারি।স্ক্যান করুন ( এবং আইডি , এবং নাম এবং অধিবেশনের সময়, এবং প্রশ্নের সংখ্যা, এবং সক্রিয় রাজ্য )
যদি ভুল ! = শূন্য {
লগ। মারাত্মক ( ভুল )
}

fmt.Printf ( 'আইডি: %d, নাম: %s, সেশনের সময়: %s, প্রশ্নের সংখ্যা: %d, সক্রিয় অবস্থা: %t \n ' , আইডি , নাম, সেশনটাইম, নম্বরঅফকোয়েরি, সক্রিয় রাজ্য )
}

যদি err = rows.Err ( ) ; ভুল ! = শূন্য {
লগ। মারাত্মক ( ভুল )
}

একবার আমরা পূর্ববর্তী কোডটি চালালে, এটি নিম্নলিখিত উদাহরণের আউটপুটে দেখানো হিসাবে db_clients টেবিল থেকে সমস্ত সারি প্রিন্ট করবে:

সেখানে আপনি এটা আছে!

উপসংহার

Golang ব্যবহার করে PostgreSQL ডাটাবেস সংযোগ করতে এবং জিজ্ঞাসা করতে আমরা কীভাবে pq প্যাকেজ ব্যবহার করতে পারি তা আমরা অনুসন্ধান করেছি।