মূল লেখায় যান

অ্যাপের ডেটাবেস

সংক্ষেপেMonstarX-এর তৈরি প্রতিটি অ্যাপের নিজস্ব প্রাইভেট ডেটাবেস আছে, যা প্রথম তৈরির সময়েই আপনার জন্য বানানো হয়। ব্যাকএন্ড → ডেটাবেস খুলে প্রতিটি টেবিল, তার সারি ও মাইগ্রেশন দেখুন, আর শুধু পড়ার SQL চালান। রেকর্ড যোগ বা বদলাতে অ্যাডমিন ট্যাব ব্যবহার করুন, অথবা চ্যাটে বলুন। প্রিভিউ আর প্রকাশিত অ্যাপ একই ডেটা ব্যবহার করে, আর কোনো সংস্করণ পুনরুদ্ধার করলে ডেটায় হাত পড়ে না।

ডেটাবেস হলো সেই জায়গা, যেখানে অ্যাপ তার তথ্য রাখে: কফি শপের মেনু, লোকজনের দেওয়া অর্ডার, তাঁদের পোস্ট করা রেসিপি, যে অ্যাকাউন্টে তাঁরা সাইন ইন করেন। MonstarX-এ তৈরি প্রতিটি অ্যাপের নিজস্ব প্রাইভেট ডেটাবেস থাকে, যা অ্যাপের প্রথম তৈরির সময় বানানো হয়। অন্য কারও অ্যাপ এটি পড়তে পারে না।

এর নকশা আপনাকে কখনো করতে হয় না। এমন কোনো ফিচার চাইলে যার কিছু মনে রাখা দরকার, MonstarX প্রয়োজনীয় টেবিল যোগ করে, আর সেগুলো পড়া ও লেখার কোডও লিখে দেয়।

অ্যাপের ডেটা কোথায় দেখব?

“অ্যাপের ডেটা কোথায় দেখব?” অংশ
  1. প্রকল্প খুলে ওপরের বারে ব্যাকএন্ড ট্যাবে ক্লিক করুন।

  2. ডেটাবেস বিভাগে ক্লিক করুন। বাঁ দিকে দেখবেন টেবিল, প্রতিটির পাশে তার সারির সংখ্যা।

  3. কোনো টেবিলে ক্লিক করলে তার সারিগুলো দেখা যায়। MonstarX প্রথম 50টি দেখায়।

তালিকার ওপরের বক্সে লেখা থাকে ডেটাবেস কোথায় আছে আর তার নাম কী। টেবিলগুলোর নিচে মাইগ্রেশন অংশে এখন পর্যন্ত ডেটাবেসের গঠন বদলানো প্রতিটি পরিবর্তনের তালিকা থাকে (এ নিয়ে নিচে আরও বলা আছে)। অ্যাপ কিছুদিন ব্যবহার হওয়ার পর সারি আবার গুনতে টেবিল লেখাটির পাশের রিফ্রেশ তীরে ক্লিক করুন।

কোন টেবিলগুলো আগে থেকেই থাকে?

“কোন টেবিলগুলো আগে থেকেই থাকে?” অংশ

কিছু চাওয়ার আগেই প্রতিটি অ্যাপে চারটি টেবিল থাকে: user, session, account ও verification। অ্যাপে যাঁরা সাইন আপ করেন, তাঁদের তথ্য আর সাইন-ইন এগুলোতে থাকে। দেখুন ব্যবহারকারীর অ্যাকাউন্ট। বাকি প্রতিটি টেবিল MonstarX আপনার অ্যাপের জন্য বানিয়েছে, যেমন menu_items বা recipes।

নিজে SQL চালানো যায়?

“নিজে SQL চালানো যায়?” অংশ

হ্যাঁ, কিছু খুঁজে দেখার জন্য। SQL হলো ডেটাবেসের ভাষা। ওপরের বক্সে একটি কুয়েরি লিখে চালান বোতামে ক্লিক করুন। উত্তর নিচে একটি টেবিল আকারে দেখা যাবে।

যেমন:

SELECT title, country_code, tags FROM recipes ORDER BY created_at DESC LIMIT 5

জেনে রাখুন:

  • বক্সটি শুধু পড়ার জন্য। এটি একবারে একটি স্টেটমেন্ট চালায়, আর শুধু সেগুলোই, যা ডেটা পড়ে: SELECT, WITH, PRAGMA ও EXPLAIN। ডেটা বদলাতে পারে এমন কিছু — INSERT, UPDATE, DELETE, DROP — ফিরিয়ে দেওয়া হয়, তাই ভুল করে অ্যাপ নষ্ট করার সুযোগ নেই।
  • একটি কুয়েরি সর্বোচ্চ 200টি সারি দেখায়।
  • PRAGMA table_info(recipes) দিয়ে একটি টেবিলের কলামগুলো দেখা যায়।
  • যে অ্যাপের ডেটা Supabase বা Railway Postgres-এ আছে, তার বক্সে চলে SELECT, WITH, TABLE ও EXPLAIN।

কীভাবে রেকর্ড যোগ, বদল বা মুছে ফেলব?

“কীভাবে রেকর্ড যোগ, বদল বা মুছে ফেলব?” অংশ

দুটি সহজ উপায় আছে, কোনোটিতেই SQL লাগে না:

  • অ্যাডমিন ট্যাব। প্রতিটি অ্যাপের একটি অ্যাডমিন প্যানেল আছে, প্রিভিউ ট্যাবের পাশে। এটি টেবিলগুলোকে ব্যবসার ভাষায় সহজ ফর্ম হিসেবে দেখায়, যেখানে রেকর্ড যোগ, সম্পাদনা ও মুছে ফেলা যায় — পূর্বাবস্থায় ফেরান সুবিধাসহ। পরিবর্তন সঙ্গে সঙ্গে অ্যাপে চালু হয়, কোনো ক্রেডিটও খরচ হয় না। দেখুন অ্যাপের অ্যাডমিন প্যানেল।
  • চ্যাট। যা চান তা বলুন, যেমন “কফি মেনুতে $4.50 দামে একটি Flat White যোগ করুন” বা “পরীক্ষার অর্ডারগুলো মুছে দিন”। চ্যাট মোডে MonstarX কিছু না বদলেই আপনার ডেটা দেখে সে বিষয়ে প্রশ্নের উত্তরও দিতে পারে — দেখুন তৈরি, পরিকল্পনা ও চ্যাট।

অ্যাপ তৈরির সময় MonstarX ডেটাবেসে কী করে?

“অ্যাপ তৈরির সময় MonstarX ডেটাবেসে কী করে?” অংশ

কোনো ফিচারের তথ্য রাখার জায়গা দরকার হলে MonstarX একটি মাইগ্রেশন লেখে: নম্বর দেওয়া এক সেট নির্দেশনা, যা টেবিল তৈরি করে বা বদলায়, যেমন 0001_create_menu_and_orders। MonstarX মাইগ্রেশনটি ডেটাবেসে প্রয়োগ করে আর আপনার কোডের সঙ্গে সংরক্ষণ করে, তাই টেবিল আর কোড সবসময় মিলে থাকে। কিছু মাইগ্রেশন শুরুর ডেটাও যোগ করে, যেমন একটি নমুনা মেনু (ওপরের উদাহরণে 0002_seed_recipes)।

ব্যাকএন্ডের মাইগ্রেশন তালিকায় এ পর্যন্ত চালানো প্রতিটি মাইগ্রেশন ক্রমানুসারে দেখা যায়। 0000_monstarx_auth MonstarX-এর নিজের, এটি অ্যাকাউন্টের টেবিলগুলো তৈরি করে।

অ্যাপ বদলালে বা পুনরুদ্ধার করলে ডেটা কি থাকে?

“অ্যাপ বদলালে বা পুনরুদ্ধার করলে ডেটা কি থাকে?” অংশ

হ্যাঁ। আপনার ডেটা কোড থেকে আলাদা থাকে:

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

ডেটা কি নিজের ডেটাবেসে রাখা যায়?

“ডেটা কি নিজের ডেটাবেসে রাখা যায়?” অংশ

হ্যাঁ। ব্যাকএন্ডক্লাউড খুলে যেখানে এই অ্যাপটি তার ডেটা রাখে অংশ থেকে বেছে নিন:

  • MonstarX ডেটাবেস — শুরুতে এটিই থাকে, কিছু সেট আপ করতে হয় না।
  • Supabase (Postgres) — আপনার নিজের Supabase প্রকল্প। Postgres একটি জনপ্রিয় ডেটাবেস, অনেক টিম আগে থেকেই এটি ব্যবহার করে। দেখুন Supabase।
  • Railway (Postgres) — আপনার নিজের Railway ডেটাবেস। দেখুন Railway।
  • Firestore (আপনার Firebase প্রকল্প) — অ্যাপের রেকর্ড থাকে Firebase-এ। দেখুন Firebase।

MonstarX টেবিল, সারি ও অ্যাকাউন্ট কপি করে নেয়, আর নতুন জায়গা ব্যবহার করতে অ্যাপের কোড বদলে দেয়। পরে চাইলে ফিরিয়ে আনুন দিয়ে আগের জায়গায় ফিরতে পারেন। ডেটা Firestore-এ থাকলে ডেটাবেস বিভাগ টেবিলের বদলে আপনার Firestore কালেকশনগুলো দেখায় (শুধু পড়ার জন্য; অ্যাপ সেগুলো লেখে)।

সাধারণ জিজ্ঞাসা

“সাধারণ জিজ্ঞাসা” অংশ
ডেটাবেস বিভাগ থেকেই কি কোনো সারি সম্পাদনা করা যায়?

না, ডেটাবেস বিভাগ শুধু পড়ে। রেকর্ড সম্পাদনা করুন অ্যাডমিন ট্যাবে, যা পূর্বাবস্থায় ফেরানোর সুবিধাসহ একটি সহজ স্প্রেডশিটের মতো কাজ করে, অথবা চ্যাটে MonstarX-কে বলুন। দেখুন অ্যাপের অ্যাডমিন প্যানেল।

পরীক্ষার অর্ডার লাইভ অ্যাপে দেখা যাচ্ছে কেন?

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

পুরোনো সংস্করণ পুনরুদ্ধার করলে কি ডেটা মুছে যায়?

না। সংস্করণ পুনরুদ্ধার করলে শুধু কোড বদলায়। ডেটাবেসের প্রতিটি সারি যেমন আছে তেমনই থাকে।

ডেটা কি ডাউনলোড করা যায়?

SELECT কুয়েরি দিয়ে যেকোনো টেবিল পড়ে ফলাফল কপি করতে পারেন, অথবা ডেটা নিজের Supabase বা Railway Postgres ডেটাবেসে সরিয়ে নিতে পারেন, যেখানে এর ওপর আপনার পুরো অ্যাক্সেস থাকবে।

এটি কোন ধরনের ডেটাবেস?

প্রতিটি অ্যাপের জন্য একটি প্রাইভেট SQL ডেটাবেস। SQL হলো ডেটাবেসের প্রচলিত ভাষা, তাই যেকোনো ডেভেলপার এটি নিয়ে কাজ করতে পারেন। Postgres পছন্দ হলে ডেটা Supabase বা Railway-তে সরিয়ে নিন।

অ্যাপটি ইমপোর্ট করা — এমন বার্তা দেখছি কেন?

ইমপোর্ট করা অ্যাপের জন্য MonstarX কোনো ডেটাবেস তৈরি করেনি: এর ডেটা থাকে অ্যাপের নিজের কোড যেখানে রাখে সেখানে। অ্যাপ যেসব কী পড়ে, সেগুলো আছে সিক্রেট বিভাগে।