SQL Connect-এর জন্য Firebase CLI কমান্ড রেফারেন্স

Firebase সিএলআই হলো এমন একটি টুল যা আপনাকে কমান্ড লাইন থেকে ফায়ারবেস প্রোডাক্ট এবং সার্ভিসগুলো পরিচালনা ও কনফিগার করতে সাহায্য করে।

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

সেটআপ কমান্ড

একটি Firebase প্রজেক্টে SQL Connect যোগ করুন

ফায়ারবেস ইনিট

নতুন লোকাল প্রজেক্ট কনফিগারেশন সেট আপ করতে firebase init ব্যবহার করুন। এই ওয়ার্কফ্লোটি আপনার ডিরেক্টরিতে ফায়ারবেস কনফিগারেশন ফাইল তৈরি বা আপডেট করে।

firebase init

firebase init flow আপনাকে একটি সার্ভিস ও ডেটাবেস সেট আপ করতে এবং ঐচ্ছিকভাবে SQL Connect এমুলেটর ইনস্টল ও জেনারেটেড SDK-গুলো কনফিগার করতে নির্দেশনা দেয়।

পরিষেবা এবং ডাটাবেস সেটআপ

প্রোডাক্ট সেটআপের জন্য আপনি যদি dataconnect নির্বাচন করেন, তাহলে CLI আপনাকে একটি নতুন সার্ভিসের নাম ও অবস্থান এবং বিদ্যমান ক্লাউড এসকিউএল ফর পোস্টগ্রেসকিউএল ইনস্ট্যান্স লিঙ্ক করবেন নাকি একটি নতুন ইনস্ট্যান্স তৈরি করবেন, তা জিজ্ঞাসা করবে।

যদি কোনো বিদ্যমান ইনস্ট্যান্স লিঙ্ক করা থাকে, তাহলে CLI সামঞ্জস্যপূর্ণ সেটিংস, যেমন IAM অথেন্টিকেশন এবং পাবলিক আইপি অ্যাড্রেস, যাচাই করে।

Local Emulator Suite সেটআপ

CLI ফ্লো-টি SQL Connect এমুলেটর সহ বিভিন্ন এমুলেটর সেট আপ করার সুযোগ দেয়।

SQL Connect এমুলেটর কমান্ড

SQL Connect এমুলেটরটি চালু করুন

এমুলেটর:স্টার্ট/এক্সিকিউট

firebase emulators:start/exec

SQL Connect এমুলেটরের Local Emulator Suite সংস্করণটি start মাধ্যমে ইন্টারেক্টিভ মোডে অথবা exec মাধ্যমে স্ক্রিপ্ট-চালিত, নন-ইন্টারেক্টিভ মোডে ব্যবহার করুন।

স্থানীয় PostgreSQL ডেটা রপ্তানি এবং আমদানি করুন

স্থানীয় প্রোটোটাইপিং ও টেস্টিং এবং নিরবচ্ছিন্ন ইন্টিগ্রেশনকে সমর্থন করার জন্য, আপনি একটি স্থানীয় ডেটাবেস ইনস্ট্যান্সে সংরক্ষিত ডেটা এক্সপোর্ট করতে পারেন এবং ডেভেলপমেন্ট ইটারেশন ও টেস্ট রানের মাঝে তা ইম্পোর্ট করতে পারেন।

এক্সপোর্টগুলো আপনার স্থানীয় PostgreSQL ডেটাবেসের স্ন্যাপশট হিসেবে সংরক্ষিত হয়।

SQL Connect এক্সপোর্ট/ইম্পোর্ট করার জন্য তিনটি পদ্ধতি প্রদান করে:

  • এমুলেটর বন্ধ ও চালু করার সময় স্ন্যাপশট ব্যাকআপ দেওয়ার জন্য আপনার firebase.json এ স্বয়ংক্রিয় এক্সপোর্ট/ইম্পোর্ট কনফিগার করা আছে।
  • CLI ব্যবহার করে ম্যানুয়াল এক্সপোর্ট/ইম্পোর্ট
  • SQL Connect VS Code এক্সটেনশন ইন্টারফেস ব্যবহার করে ম্যানুয়াল এক্সপোর্ট/ইম্পোর্ট

আপনার firebase.json এ স্বয়ংক্রিয় রপ্তানি এবং আমদানি কনফিগার করা আছে।

ডেভেলপমেন্ট সেশনগুলোর মাঝে ডেটা ব্যাকআপ করার জন্য, firebase init সিকোয়েন্সের সময় একটি স্বয়ংক্রিয় ব্যাকআপ লোকেশন নির্দিষ্ট করে দিন। এই লোকেশনটি আপনার firebase.json ফাইলের emulators.dataconnect.dataDir ফিল্ডে সংরক্ষিত থাকে। আপনার করা যেকোনো ডেটা পরিবর্তন এমুলেটর রানগুলোর মাঝে স্বয়ংক্রিয়ভাবে এখানে সেভ হয়ে যাবে, তাই এটি লোকাল টেস্টিং এবং অনুসন্ধানের সময় বেশ কার্যকর।

ম্যানুয়াল এক্সপোর্ট: emulators:export এবং emulators:start/exec --import

SQL Connect এমুলেটরটি চালু থাকা অবস্থায়, একটি আলাদা টার্মিনালে আপনার ডেটার একটি স্ন্যাপশট সংরক্ষণ করতে ` firebase emulators:export কমান্ডটি চালান। এরপর, আপনি --import ফ্ল্যাগটি ব্যবহার করে সেই স্ন্যাপশট থেকে এমুলেটরটি চালু করতে পারবেন।

# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>

# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>

ম্যানুয়াল এক্সপোর্ট/ইম্পোর্ট: SQL Connect VS Code এক্সটেনশন

এমুলেটরটি চালু থাকা অবস্থায়, SQL Connect VS Code এক্সটেনশন UI-তে, বর্তমান ডাটাবেসের বিষয়বস্তু এক্সপোর্ট করার জন্য 'Export emulator data' বাটনটি ব্যবহার করুন। ডিফল্ট এক্সপোর্ট লোকেশন হলো আপনার প্রজেক্ট ডিরেক্টরির রুটে অবস্থিত exportedData ডিরেক্টরি।

পূর্ববর্তী বিভাগে বর্ণিত পদ্ধতি অনুযায়ী আপনি CLI ব্যবহার করে এই ডেটা ইম্পোর্ট করতে পারেন। এছাড়াও, আপনি VS Code-এর মাধ্যমে 'Configure emulator' লিঙ্কে ক্লিক করে এবং 'Import Path' সেট করে এমুলেটর শুরু করার আগেও এই ডেটা ইম্পোর্ট করতে পারেন।

স্কিমা এবং সংযোগকারী ব্যবস্থাপনা কমান্ড

এই বিভাগে স্কিমা এবং কানেক্টর পরিচালনার জন্য ব্যবহৃত কমান্ডগুলোর CLI রেফারেন্স তথ্য রয়েছে।

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

স্কিমা এবং সংযোগকারী স্থাপন করুন

মোতায়েন করুন

firebase deploy

এই কমান্ডটি firebase.json- এ ইনডেক্স করা SQL Connect সার্ভিসগুলোর জন্য রিসোর্স ডেপ্লয় করে। প্রয়োজনে স্কিমা মাইগ্রেশন এবং কানেক্টর আপডেট করা হয়।

আদেশ বর্ণনা

ফায়ারবেস ডিপ্লয়

পতাকা বর্ণনা

--শুধুমাত্র ডেটা সংযোগ

এই প্রোজেক্টের সমস্ত SQL Connect সার্ভিসের জন্য স্কিমা এবং কানেক্টর ডেপ্লয় করুন, কিন্তু অন্য কোনো Firebase প্রোডাক্ট রিসোর্স ডেপ্লয় করবেন না।

--শুধুমাত্র ডেটাকানেক্ট:সার্ভিসআইডি

নির্দিষ্ট SQL Connect পরিষেবার জন্য স্কিমা এবং কানেক্টর স্থাপন করুন।

--শুধুমাত্র ডেটাকানেক্ট:সার্ভিসআইডি:কানেক্টরআইডি

নির্দিষ্ট SQL Connect পরিষেবার জন্য একটিমাত্র কানেক্টর স্থাপন করুন।

--শুধুমাত্র ডেটাকানেক্ট:সার্ভিসআইডি:স্কিমা

নির্দিষ্ট SQL Connect পরিষেবার জন্য স্কিমাটি স্থাপন করুন।

–-only ফ্ল্যাগ ব্যবহার করে, আপনি কমা-দ্বারা-বিভক্ত মান পাস করার মাধ্যমে আপনার ইচ্ছামত রিসোর্সের যেকোনো উপসেট স্থাপন করতে পারেন।

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

SQL Connect পরিষেবা, স্কিমা এবং সংযোগকারীগুলির তালিকা

ডেটাকানেক্ট:পরিষেবা:তালিকা

firebase dataconnect:services:list

এই কমান্ডটি একটি প্রজেক্টে ডেপ্লয় করা সার্ভিস, স্কিমা এবং কানেক্টরগুলোর প্রাথমিক তথ্য প্রিন্ট করে।

SQL স্কিমা তুলনা এবং স্থানান্তর করুন

আপনি যখন firebase deploy চালান, তখন CLI আপডেটগুলি ডেপ্লয় করার আগে একটি SQL স্কিমা তুলনা করে। এছাড়াও, আপনি dataconnect:sql কমান্ডের একটি সেট ব্যবহার করে সরাসরি এই তুলনা এবং আপডেটটি করতে পারেন।

ডেটাকানেক্ট:এসকিউএল:ডিফ

firebase dataconnect:sql:diff

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

আদেশ বর্ণনা

firebase dataconnect:sql:diff

ফ্ল্যাগ/প্যারামিটার বর্ণনা

পরিষেবা আইডি

সার্ভিসটি নির্দিষ্ট করুন। এটি বাদ দিলে, firebase.json-এ থাকা সমস্ত সার্ভিসের diff প্রিন্ট করুন।

ডেটাকানেক্ট:এসকিউএল:মাইগ্রেট

firebase dataconnect:sql:migrate

এই কমান্ডটি একটি সার্ভিসের ক্লাউড এসকিউএল ডেটাবেসে স্থানীয় স্কিমা পরিবর্তনগুলো প্রয়োগ করে।

যখন আপনি ডিফল্ট dataconnect.yaml ফাইল সহ একটি নতুন লোকাল SQL Connect প্রজেক্ট সেট আপ করেন, তখন dataconnect:sql:migrate কমান্ডটি পরিবর্তনগুলি কার্যকর করার আগে, প্রথমে প্রয়োজনীয় পরিবর্তনগুলির জন্য এবং তারপর ঐচ্ছিক পরিবর্তনগুলির জন্য আপনাকে জিজ্ঞাসা করে। আপনি আপনার dataconnect.yaml কনফিগারেশন আপডেট করে এই আচরণটি পরিবর্তন করতে পারেন, যাতে ঐচ্ছিক পরিবর্তনগুলি সর্বদা অন্তর্ভুক্ত বা উপেক্ষা করা যায়, যেমনটি "migrate a schema in strict or compatible mode" অংশে আলোচনা করা হয়েছে।

ইন্টারেক্টিভ পরিবেশে, CLI প্রতিটি মাইগ্রেশন SQL স্টেটমেন্ট (এবং সেটি ডেস্ট্রাক্টিভ কিনা) প্রদর্শন করে এবং আপনি যে পরিবর্তনগুলো প্রয়োগ করতে চান তার জন্য প্রম্পট করে। --force ফ্ল্যাগটি পাস করা সমস্ত প্রম্পট গ্রহণ করার সমতুল্য।

অ-পারস্পরিক ক্রিয়াশীল পরিবেশে:

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

firebase dataconnect:sql:migrate

পতাকা বর্ণনা

পরিষেবা আইডি

নির্দিষ্ট সার্ভিসের জন্য ডাটাবেস মাইগ্রেট করুন। আপনার প্রজেক্টে যদি কেবল একটি সার্ভিস থাকে, তবে serviceId-টি অনুমান করে নেওয়া হয়।

বলপ্রয়োগ

স্বয়ংক্রিয়ভাবে নির্দেশাবলী গ্রহণ করুন।

অন্যান্য --only ফ্ল্যাগের মতোই, আপনি কমা দিয়ে একাধিক সার্ভিস প্রদান করতে পারেন।

স্ট্রিক্ট বা কম্প্যাটিবল মোডে একটি স্কিমা মাইগ্রেট করুন

SQL Connect স্কিমা মাইগ্রেশনের দুটি ভিন্ন স্কিমা ভ্যালিডেশন মোড রয়েছে: স্ট্রিক্ট এবং কম্প্যাটিবল । স্ট্রিক্ট মোড ভ্যালিডেশনের জন্য প্রয়োজন যে, অ্যাপ্লিকেশন স্কিমা ডেপ্লয় করার আগে ডাটাবেস স্কিমাটি অ্যাপ্লিকেশন স্কিমার সাথে হুবহু মিলে যায়। কম্প্যাটিবল মোড ভ্যালিডেশনের জন্য প্রয়োজন যে ডাটাবেস স্কিমাটি অ্যাপ্লিকেশন স্কিমার সাথে সামঞ্জস্যপূর্ণ হয়, যার অর্থ হলো আপনার ডাটাবেসের যে উপাদানগুলো আপনার অ্যাপ্লিকেশন স্কিমা দ্বারা ব্যবহৃত হয় না, সেগুলো অপরিবর্তিত থাকে।

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

আপনার dataconnect.yaml ফাইলে schemaValidation কী ব্যবহার করে ভ্যালিডেশন মোড নির্ধারণ করা হয়। যদি schemaValidation নির্দিষ্ট করা না থাকে, তাহলে CLI সামঞ্জস্যপূর্ণ পরিবর্তনগুলো প্রয়োগ করে এবং কোনো কঠোর পরিবর্তন কার্যকর করার আগে আপনাকে জিজ্ঞাসা করে। কনফিগারেশন রেফারেন্স দেখুন।

কানেক্টরগুলিতে পরিবর্তনগুলি পরিচালনা করুন

যখন আপনি firebase deploy চালান, তখন CLI প্রযোজ্য কানেক্টরগুলোর একটি আপডেট শুরু করে। CLI প্রতিটি কানেক্টরের পরিবর্তনগুলো বিশ্লেষণ করে এবং কানেক্টরের সেইসব পরিবর্তন সম্পর্কে একগুচ্ছ মূল্যায়ন বার্তা জারি করে, যা ক্লায়েন্ট কোডের পূর্ববর্তী সংস্করণগুলোতে অপ্রত্যাশিত আচরণ (বার্তাগুলো ওয়ার্নিং-লেভেলের) বা সিস্টেম বিকল (বার্তাগুলো ব্রেকিং-লেভেলের) করতে পারে।

প্রভাব মূল্যায়ন দৃশ্যকল্প
সতর্কীকরণ-স্তর (তারের সাথে সামঞ্জস্যপূর্ণ, আচরণ পরিবর্তিত হতে পারে)
  • @retired অ্যানোটেশন ছাড়া কোয়েরি থেকে নালযোগ্য ফিল্ড অপসারণ করা।
ব্রেকিং-লেভেল (তারের অসামঞ্জস্যতা, ক্লায়েন্ট সংযোগ বিচ্ছিন্ন হতে পারে)
  • ডিফল্ট মান ছাড়া একটি নালযোগ্য ভেরিয়েবলকে নন-নাল-এ পরিবর্তন করা।
  • কোনো ফিল্ডের ডেটা টাইপ পরিবর্তন করে JSON-উপযোগী কিছু করা (যেমন Int থেকে Float )।
  • একটি নন-নাল কলামকে নালযোগ্য কলামে পরিবর্তন করা।
  • @retired অ্যানোটেশন ছাড়া একটি নাল ভেরিয়েবল অপসারণ করা।
  • @retired অ্যানোটেশন ছাড়া ডিফল্ট মানসহ একটি নন-নাল ভেরিয়েবল মুছে ফেলা।
ব্রেকিং-লেভেল (তারের অসামঞ্জস্যতা, ক্লায়েন্ট সংযোগ বিচ্ছিন্ন করবে )
  • @retired অ্যানোটেশন ছাড়া কোনো অপারেশন অপসারণ করা।
  • @retired অ্যানোটেশন ব্যবহার না করে কোয়েরি থেকে কোনো নন-নাল ফিল্ড অপসারণ করা।
  • ডিফল্ট মান ছাড়া একটি নন-নাল ভেরিয়েবল যোগ করা।
  • কোনো ফিল্ডের ডেটা টাইপকে অসামঞ্জস্যপূর্ণ কিছুতে পরিবর্তন করা (যেমন String থেকে Int )।
  • ডিফল্ট মান এবং @retired অ্যানোটেশন ছাড়া একটি নন-নাল ভেরিয়েবল মুছে ফেলা।

ইন্টারেক্টিভ পরিবেশে, CLI প্রতিটি কানেক্টর অ্যাসেসমেন্ট প্রদর্শন করে এবং আপনি যে পরিবর্তনগুলো প্রয়োগ করতে চান তার জন্য অনুরোধ জানায়। --force ফ্ল্যাগটি পাস করা সমস্ত অ্যাসেসমেন্ট গ্রহণ করার সমতুল্য।

অ-পারস্পরিক ক্রিয়াশীল পরিবেশে:

  • যদি কেবল সতর্কীকরণ-স্তরের মূল্যায়ন (সম্ভাব্য আচরণগত পরিবর্তন) ঘটে, তাহলে সমস্ত কানেক্টর স্থাপন করা হবে এবং সতর্কবার্তাগুলো টার্মিনালে লগ করা হবে।
  • যদি কোনো ব্রেকিং-লেভেল অ্যাসেসমেন্ট ঘটে, তাহলে কোনো কানেক্টর ডেপ্লয় করা হবে না এবং টার্মিনালে সতর্কবার্তা লগ করা হবে। আপনি --force ফ্ল্যাগ ব্যবহার করে এটি ওভাররাইড করতে পারেন।

অডিট অনুমোদন কোড

আপনি যখন Firebase CLI থেকে firebase deploy ব্যবহার করে সার্ভারে ডিপ্লয় করেন, তখন SQL Connect আপনার কানেক্টর কোড বিশ্লেষণ করে আপনার অথরাইজেশন স্ট্র্যাটেজি নিরীক্ষা করতে সাহায্য করে। এই নিরীক্ষাটি আপনি আপনার কোডবেস পর্যালোচনা করতে ব্যবহার করতে পারেন।

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

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

নিম্নলিখিত ক্ষেত্রে সর্বদা সতর্কতা এবং নির্দেশিকা প্রদর্শিত হয়:

  • PUBLIC

এবং, যখন আপনি auth.uid ব্যবহার করে ফিল্টারের মাধ্যমে নিম্নলিখিত অ্যাক্সেস লেভেলগুলিকে বর্ধিত করেন না, তখন সতর্কবার্তা এবং প্রম্পট প্রদর্শিত হয়:

  • USER
  • USER_ANON
  • USER_EMAIL_VERIFIED

অনুমোদন সম্পর্কে আরও তথ্যের জন্য, অনুমোদন ও প্রত্যয়ন নির্দেশিকাটি দেখুন।

SDK কমান্ড

এসডিকে তৈরি করুন

ডেটা সংযোগ:এসডিকে:জেনারেট

firebase dataconnect:sdk:generate

এই কমান্ডটি connector.yaml- এ ঘোষিত টাইপড SDK-গুলো তৈরি করে।

এছাড়াও ওয়েব এসডিকে , অ্যান্ড্রয়েড এসডিকে এবং আইওএস এসডিকে নিয়ে কাজ করার নির্দেশিকাগুলো দেখুন।

আদেশ বর্ণনা

firebase dataconnect:sdk:generate

পতাকা বর্ণনা

–-দেখুন

যখনই আপনি আপনার স্কিমা এবং কানেক্টর GQL ফাইলগুলিতে পরিবর্তন সংরক্ষণ করেন, এটি প্রক্রিয়াটিকে চালু রাখে এবং নতুন SDK তৈরি করে।

জেনারেশন ব্যর্থ হলে, স্ট্যান্ডার্ড আউটপুটে (stdout) ত্রুটিগুলো প্রিন্ট করা হবে, জেনারেট করা কোড অপরিবর্তিত থাকবে এবং কমান্ডটি চলতে থাকবে।

--শুধুমাত্র কানেক্টরআইডি:প্ল্যাটফর্ম

শুধুমাত্র একটি প্ল্যাটফর্ম এবং একটি কানেক্টরের জন্য SDK তৈরি করুন।

–only ফ্ল্যাগ ব্যবহার করে আপনি কমা দিয়ে আলাদা করা মান পাস করতে পারেন।

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

ক্লাউড SQL পরিচালনার কমান্ড

ক্লাউড SQL-এর জন্য SQL ভূমিকা মঞ্জুর করুন

SQL Connect Cloud SQL-এ হোস্ট করা আপনার নিজস্ব PostgreSQL ইনস্ট্যান্সের উপরে কাজ করে। SQL রোল কমান্ডগুলো আপনাকে আপনার ডাটাবেস টেবিলের অনুমতিগুলো পরিচালনা করতে সাহায্য করে।

ডেটাকানেক্ট:এসকিউএল:সেটআপ

firebase dataconnect:sql:setup

এই কমান্ডটি আপনার ডাটাবেসের টেবিলগুলোর জন্য প্রাথমিক, বৈশ্বিক অনুমতি নির্ধারণ করে।

ডিফল্ট ডাটাবেস প্রোভিশনিং এবং ম্যানেজমেন্ট ফ্লো ধরে নেয় যে আপনার প্রজেক্ট একটি নতুন (গ্রিনফিল্ড) ডাটাবেস ব্যবহার করছে, এবং যখন আপনি firebase deploy চালান, তখন SQL Connect ডাটাবেস স্কিমাতে করণীয় পরিবর্তনগুলো প্রদর্শন করে এবং আপনার অনুমোদনের পর যেকোনো মাইগ্রেশন সম্পন্ন করে। যদি এই ফ্লোটিই আপনার পছন্দের হয়, তাহলে dataconnect:sql:setup আপনাকে superuser স্কিমা ওনারশিপ সহ অন্যান্য অনুমতি দেওয়ার জন্য অনুরোধ করবে।

বিদ্যমান (ব্রাউনফিল্ড) ডেটাবেসের ক্ষেত্রে, স্কিমা মাইগ্রেট করার জন্য আপনার নিজস্ব ওয়ার্কফ্লো থাকতে পারে এবং আপনি স্কিমার মালিকানা নিজেই বজায় রাখতে চাইতে পারেন। যদি এটিই আপনার পছন্দের পদ্ধতি হয়, তাহলে dataconnect:sql:setup প্রম্পটে SQL Connect আপনার জন্য SQL মাইগ্রেশন পরিচালনা করবে কিনা, সেই বিকল্পটি প্রত্যাখ্যান করতে ভুলবেন না। এটি প্রত্যাখ্যান করার ফলে, SQL Connect আপনার ডেটাবেস টেবিলগুলিতে শুধুমাত্র read এবং write অ্যাক্সেস পাবে, কিন্তু স্কিমার মালিকানা এবং মাইগ্রেশনের দায়িত্ব আপনারই থাকবে।

আরও আলোচনা এবং ব্যবহারিক উদাহরণের জন্য, পরিষেবা এবং ডেটাবেস পরিচালনা দেখুন।

ডেটাকানেক্ট:এসকিউএল:গ্রান্ট

firebase dataconnect:sql:grant

কিছু ক্ষেত্রে, আপনার SQL Connect অ্যাপস দ্বারা তৈরি ডেটা কোয়েরি করতে বা আপডেট করতে আপনি সরাসরি আপনার ডাটাবেস অ্যাক্সেস করতে চাইতে পারেন। এটি করার জন্য, আপনাকে প্রয়োজনীয় ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টকে এই বিভাগে সংজ্ঞায়িত ভূমিকাগুলির মধ্যে একটি প্রদান করতে হবে।

প্রদত্ত ভূমিকাগুলির বিশদ বিবরণের জন্য, PostgreSQL ব্যবহারকারীর ভূমিকা দেখুন।

ভূমিকা SQL ভূমিকা অনুমতি ব্যবহার মঞ্জুরযোগ্য
পাঠক firebasereader_<db_name>_<schema_name> ডাটাবেসে শুধুমাত্র পঠনযোগ্য প্রবেশাধিকার।

নির্দিষ্ট স্কিমার অন্তর্গত সকল টেবিলে SELECT অপারেশন সম্পাদন করা যায়।
যেসব ব্যবহারকারী বা পরিষেবার ডেটা পুনরুদ্ধারের প্রয়োজন, কিন্তু পরিবর্তনের নয়, তাদের জন্য আদর্শ। হ্যাঁ
লেখক firebasewriter_<db_name>_<schema_name> ডাটাবেসে পঠন ও লিখন অ্যাক্সেস।

স্কিমার অন্তর্গত সকল টেবিলের উপর SELECT , INSERT , UPDATE , DELETE এবং TRUNCATE অপারেশনগুলো সম্পাদন করা যায়।
যেসব ব্যবহারকারী বা পরিষেবার ডেটাবেসের ডেটা পরিবর্তন করার প্রয়োজন, তাদের জন্য উপযুক্ত। হ্যাঁ
মালিক firebaseowner_<db_name>_<schema_name> স্কিমা মালিক।

স্কিমার সকল টেবিল এবং সিকোয়েন্সের উপর তার সকল অধিকার রয়েছে।
এই রোলটি, IAM roles/cloudsql.client রোলের সাথে মিলিতভাবে, ডেটাবেসে মাইগ্রেশন সম্পাদনের অনুমতি প্রদান করে।

উদাহরণস্বরূপ, firebase dataconnect:sql:migrate কল করার সময়।
হ্যাঁ
সুপারইউজার cloudsqlsuperuser ডাটাবেসে পূর্ণ অধিকারসহ অন্তর্নির্মিত সুপারইউজার রোল।

মালিকের অনুমতির পাশাপাশি, এটি স্কিমা তৈরি করতে, স্কিমা মুছে ফেলতে, এক্সটেনশন ইনস্টল করতে এবং অন্য যেকোনো প্রশাসনিক কাজ সম্পাদন করতে পারে।

'firebasesuperuser' হিসেবে লগ ইন করে CLI-তে এটি অ্যাক্সেস করা যায়।
এক্সটেনশন ইনস্টল করতে, প্রাথমিক স্কিমা তৈরি করতে এবং অন্যান্য ব্যবহারকারীদেরকে প্রদানযোগ্য যেকোনো SQL রোল মঞ্জুর করার জন্য এটি প্রয়োজন।

যদি কোনো নন-অ্যাডমিন ব্যবহারকারীর সুপারইউজার প্রিভিলেজের প্রয়োজন হয়, তাহলে মাইগ্রেশনটি ব্যর্থ হবে এবং ব্যবহারকারীকে ডেটাবেস অ্যাডমিনিস্ট্রেটরকে (অর্থাৎ, roles/cloudsql.admin কোনো ব্যবহারকারীকে) প্রিভিলেজযুক্ত SQL কমান্ডগুলো চালানোর জন্য অনুরোধ করতে বলা হবে।
যেসব ব্যবহারকারীর roles/cloudsql.admin আছে, তাদের এই অনুমতি দেওয়া হয় এবং Firebase CLI থেকে সরাসরি এটি দেওয়া যায় না।
আদেশ বর্ণনা

firebase dataconnect:sql:grant

ফ্ল্যাগ/প্যারামিটার বর্ণনা

-R, --ভূমিকা ভূমিকা

যে SQL রোলটি প্রদান করতে হবে, তা হলো: owner, writer, বা reader।

-ই, --ইমেইল ইমেইল_ঠিকানা

ভূমিকাটি প্রদান করার জন্য ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা।

বৈশ্বিক বিকল্পগুলি

নিম্নলিখিত গ্লোবাল অপশনগুলো সকল কমান্ডের ক্ষেত্রে প্রযোজ্য:

  • --json বিকল্পটি CLI আউটপুটকে JSON-এ পরিবর্তন করে, যাতে অন্যান্য টুল তা পার্স করতে পারে।
  • প্রয়োজন অনুযায়ী, --noninteractive এবং --interactive অপশনগুলো নন-TTY এনভায়রনমেন্টের স্বয়ংক্রিয় শনাক্তকরণকে ওভাররাইড করে।