डेटाबेस प्रबंधित करें

यह पृष्ठ बताता है कि क्लाउड फायरस्टोर डेटाबेस कैसे बनाएं, अपडेट करें और हटाएं। आप प्रति प्रोजेक्ट एकाधिक क्लाउड फायरस्टोर डेटाबेस बना सकते हैं। आप उत्पादन और परीक्षण वातावरण स्थापित करने, ग्राहक डेटा को अलग करने और डेटा क्षेत्रीयकरण के लिए कई डेटाबेस का उपयोग कर सकते हैं।

(default) डेटाबेस

यदि आपके ऐप को एकाधिक डेटाबेस की आवश्यकता नहीं है, तो (default) डेटाबेस का उपयोग करें।

यदि आप कोई डेटाबेस निर्दिष्ट नहीं करते हैं, तो क्लाउड फायरस्टोर क्लाइंट लाइब्रेरी और Google क्लाउड सीएलआई डिफ़ॉल्ट रूप से (default) डेटाबेस से कनेक्ट होते हैं।

आप निःशुल्क कोटा का उपयोग केवल (default) डेटाबेस के साथ कर सकते हैं।

आवश्यक भूमिकाएँ

डेटाबेस बनाने और प्रबंधित करने के लिए, आपको Owner या Datastore Owner पहचान और एक्सेस प्रबंधन भूमिका की आवश्यकता होती है। ये भूमिकाएँ आवश्यक अनुमतियाँ प्रदान करती हैं।

आवश्यक अनुमतियाँ

डेटाबेस प्रबंधित करने के लिए, आपको निम्नलिखित अनुमतियों की आवश्यकता है:

  • एक डेटाबेस बनाएं: datastore.databases.create
  • डेटाबेस कॉन्फ़िगरेशन पढ़ें: datastore.databases.getMetadata
  • डेटाबेस कॉन्फ़िगर करें: datastore.databases.update
  • एक डेटाबेस हटाएँ: datastore.databases.delete

एक डेटाबेस बनाएं

डेटाबेस बनाने के लिए, निम्न विधियों में से किसी एक का उपयोग करें:

सांत्वना देना
  1. Google क्लाउड प्लेटफ़ॉर्म कंसोल में, डेटाबेस पृष्ठ पर जाएँ।

    डेटाबेस पर जाएँ

  2. डेटाबेस बनाएँ पर क्लिक करें।
  3. एक डेटाबेस मोड चुनें. जारी रखें पर क्लिक करें
  4. अपना डेटाबेस कॉन्फ़िगर करें. एक डेटाबेस आईडी दर्ज करें. एक स्थान चुनें. डेटाबेस बनाएँ पर क्लिक करें।
gcloud

gcloud alpha firestore databases create कमांड का उपयोग करें।

gcloud alpha firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

निम्नलिखित को बदलें:

--delete-protection विलोपन सुरक्षा को सक्षम करने के लिए एक वैकल्पिक ध्वज है। जब तक आप इस सेटिंग को अक्षम नहीं करते, तब तक आप विलोपन सुरक्षा सक्षम डेटाबेस को हटा नहीं सकते। यह सेटिंग डिफ़ॉल्ट रूप से अक्षम है.

फायरबेस सीएलआई
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

निम्नलिखित को बदलें:

--delete-protection विलोपन सुरक्षा को सक्षम करने के लिए एक वैकल्पिक तर्क है। जब तक आप इस सेटिंग को अक्षम नहीं करते, तब तक आप विलोपन सुरक्षा सक्षम डेटाबेस को हटा नहीं सकते। यह सेटिंग डिफ़ॉल्ट रूप से अक्षम है.

terraform
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

निम्नलिखित को बदलें:

delete_protection_state विलोपन सुरक्षा को सक्षम करने के लिए एक वैकल्पिक तर्क है। जब तक आप इस सेटिंग को अक्षम नहीं करते, तब तक आप विलोपन सुरक्षा सक्षम डेटाबेस को हटा नहीं सकते। यह सेटिंग डिफ़ॉल्ट रूप से अक्षम है.

डेटाबेस आईडी

वैध डेटाबेस आईडी में (default) और निम्नलिखित के अनुरूप आईडी शामिल हैं:

  • इसमें केवल अक्षर, संख्याएँ और हाइफ़न ( - ) वर्ण शामिल हैं।
  • अक्षर छोटे होने चाहिए.
  • पहला अक्षर एक अक्षर होना चाहिए.
  • अंतिम अक्षर कोई अक्षर या संख्या होना चाहिए.
  • न्यूनतम 4 अक्षर.
  • अधिकतम 63 अक्षर.
  • यूयूआईडी नहीं होना चाहिए या यूयूआईडी जैसा नहीं होना चाहिए। उदाहरण के लिए, f47ac10b-58cc-0372-8567-0e02b2c3d479 जैसी आईडी का उपयोग न करें।

यदि आप कोई डेटाबेस हटाते हैं, तो आप तुरंत 5 मिनट के बाद तक डेटाबेस आईडी का पुन: उपयोग नहीं कर सकते।

सुरक्षा हटाएँ

किसी डेटाबेस के आकस्मिक विलोपन को रोकने के लिए डिलीट प्रोटेक्शन का उपयोग करें। आप डिलीट प्रोटेक्शन सक्षम डेटाबेस को तब तक नहीं हटा सकते जब तक आप डिलीट प्रोटेक्शन को अक्षम नहीं कर देते। डिलीट प्रोटेक्शन डिफ़ॉल्ट रूप से अक्षम है। जब आप डेटाबेस बनाते हैं तो आप डिलीट प्रोटेक्शन को सक्षम कर सकते हैं या डिलीट प्रोटेक्शन को सक्षम करने के लिए डेटाबेस कॉन्फ़िगरेशन को अपडेट कर सकते हैं।

अपने डेटाबेस के लिए क्लाउड फायरस्टोर सुरक्षा नियम सेट करें

अपने प्रत्येक डेटाबेस में क्लाउड फायरस्टोर सुरक्षा नियमों को तैनात करने के लिए फायरबेस सीएलआई का उपयोग करें। क्लाउड फायरस्टोर सुरक्षा नियमों के प्रबंधन और तैनाती के लिए गाइड देखें।

क्लाइंट लाइब्रेरी के साथ नामित डेटाबेस तक पहुंचें

नामित डेटाबेस में कोई भी डेटाबेस शामिल होता है जिसका नाम (default) नहीं होता है। डिफ़ॉल्ट रूप से, फायरबेस एसडीके और Google एपीआई क्लाइंट लाइब्रेरी एक प्रोजेक्ट में (default) क्लाउड फायरस्टोर डेटाबेस से कनेक्ट होते हैं। किसी नामित डेटाबेस से जुड़ा क्लाइंट बनाने के लिए, जब आप किसी क्लाइंट को इंस्टेंट करते हैं तो डेटाबेस आईडी सेट करें।

डेटाबेस सूचीबद्ध करें

अपने डेटाबेस को सूचीबद्ध करने के लिए निम्न विधियों में से किसी एक का उपयोग करें:

सांत्वना देना

Google क्लाउड प्लेटफ़ॉर्म कंसोल में, डेटाबेस पृष्ठ पर जाएँ।

डेटाबेस पर जाएँ

gcloud

अपने प्रोजेक्ट में सभी डेटाबेस को सूचीबद्ध करने के लिए gcloud firestore databases list कमांड का उपयोग करें।

gcloud firestore databases list

डेटाबेस विवरण देखें

किसी एकल डेटाबेस के बारे में विवरण देखने के लिए, gcloud firestore databases describe कमांड का उपयोग करें:

gcloud
gcloud firestore databases describe --database=DATABASE_ID

DATABASE_ID डेटाबेस आईडी से बदलें।

डेटाबेस कॉन्फ़िगरेशन अद्यतन करें

किसी डेटाबेस की कॉन्फ़िगरेशन सेटिंग्स को अपडेट करने के लिए, gcloud alpha firestore databases update कमांड का उपयोग करें। डिलीट प्रोटेक्शन को सक्षम या अक्षम करने के लिए बदलने के लिए इस कमांड का उपयोग करें।

डिलीट प्रोटेक्शन सेटिंग को अपडेट करें

किसी डेटाबेस पर डिलीट प्रोटेक्शन को सक्षम करने के लिए, --delete-protection फ़्लैग के साथ gcloud alpha firestore databases update कमांड का उपयोग करें। उदाहरण के लिए:

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

DATABASE_ID डेटाबेस आईडी से बदलें।

किसी डेटाबेस पर डिलीट प्रोटेक्शन को अक्षम करने के लिए, --no-delete-protection फ़्लैग के साथ gcloud alpha firestore databases update कमांड का उपयोग करें। उदाहरण के लिए:

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

DATABASE_ID डेटाबेस आईडी से बदलें।

एक डेटाबेस हटाएँ

किसी डेटाबेस को हटाने के लिए कंसोल या कमांड-लाइन टूल का उपयोग करें।

यदि डेटाबेस में डिलीट प्रोटेक्शन सेटिंग सक्षम है, तो आपको पहले डिलीट प्रोटेक्शन को अक्षम करना होगा।

यदि डेटाबेस में ऐप इंजन खोज डेटा या ब्लॉब इकाइयां हैं , तो आपको पहले उस डेटा को हटाना होगा।

किसी डेटाबेस को हटाने से उस डेटाबेस के लिए कोई भी इवेंटार्क ट्रिगर स्वचालित रूप से नहीं हटता है। ट्रिगर ईवेंट वितरित करना बंद कर देता है लेकिन तब तक मौजूद रहता है जब तक आप ट्रिगर को हटा नहीं देते

सांत्वना देना
  1. Google क्लाउड प्लेटफ़ॉर्म कंसोल में, डेटाबेस पृष्ठ पर जाएँ।

    डेटाबेस पर जाएँ

  2. जिस डेटाबेस को आप हटाना चाहते हैं उसके लिए तालिका पंक्ति में और देखें पर क्लिक करें। हटाएँ पर क्लिक करें. एक संवाद प्रकट होता है.
  3. हटाएँ डेटाबेस में? संवाद, पाठ फ़ील्ड में डेटाबेस आईडी टाइप करके विलोपन की पुष्टि करें। हटाएँ पर क्लिक करें. कंसोल आपको ऑपरेशन की सफलता या विफलता की सूचना देता है।

    यदि ऑपरेशन विफल हो जाता है, तो डेटाबेस विवरण देखें और सत्यापित करें कि डिलीट सुरक्षा अक्षम है। डिलीट प्रोटेक्शन को अक्षम करने के लिए, डिलीट प्रोटेक्शन सेटिंग को अपडेट करें देखें।

gcloud

`gcloud अल्फा फायरस्टोर डेटाबेस डिलीट` कमांड का उपयोग करें।

gcloud alpha firestore databases delete --database=DATABASE_ID

हटाने के लिए DATABASE_ID डेटाबेस की आईडी से बदलें।

प्रति-डेटाबेस पहुंच अनुमतियाँ कॉन्फ़िगर करें

आप प्रति-डेटाबेस स्तर पर एक्सेस अनुमतियों को कॉन्फ़िगर करने के लिए पहचान और एक्सेस प्रबंधन शर्तों का उपयोग कर सकते हैं। निम्नलिखित उदाहरण एक या अधिक डेटाबेस के लिए सशर्त पहुंच प्रदान करने के लिए Google क्लाउड सीएलआई का उपयोग करते हैं। आप GCP कंसोल में IAM शर्तों को भी परिभाषित कर सकते हैं।

मौजूदा IAM नीतियां देखें

gcloud projects get-iam-policy PROJECT_ID

PROJECT_ID अपनी प्रोजेक्ट आईडी पर सेट करें।

डेटाबेस तक पहुंच प्रदान करें

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

निम्नलिखित सेट करें:

  • PROJECT_ID : आपकी प्रोजेक्ट आईडी
  • EMAIL : एक ईमेल पता जो एक विशिष्ट Google खाते का प्रतिनिधित्व करता है। उदाहरण के लिए, alice@example.com
  • DATABASE_ID : एक डेटाबेस आईडी।
  • TITLE : अभिव्यक्ति के लिए एक वैकल्पिक शीर्षक.
  • DESCRIPTION : अभिव्यक्ति का एक वैकल्पिक विवरण.

एक डेटाबेस को छोड़कर सभी तक पहुंच प्रदान करें

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

निम्नलिखित सेट करें:

  • PROJECT_ID : आपकी प्रोजेक्ट आईडी
  • EMAIL : एक ईमेल पता जो एक विशिष्ट Google खाते का प्रतिनिधित्व करता है। उदाहरण के लिए, alice@example.com
  • DATABASE_ID : एक डेटाबेस आईडी।
  • TITLE : अभिव्यक्ति के लिए एक वैकल्पिक शीर्षक.
  • DESCRIPTION : अभिव्यक्ति का एक वैकल्पिक विवरण.

किसी दिए गए सदस्य और भूमिका के लिए नीतियां हटाएं

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

निम्नलिखित सेट करें:

  • PROJECT_ID : आपकी प्रोजेक्ट आईडी
  • EMAIL : एक ईमेल पता जो एक विशिष्ट Google खाते का प्रतिनिधित्व करता है। उदाहरण के लिए, alice@example.com

बादल निगरानी

क्लाउड फायरस्टोर मेट्रिक्स दो मॉनिटर किए गए संसाधनों के तहत रिपोर्ट किए जाते हैं।

आप firestore.googleapis.com/Database को देखकर डेटाबेस स्तर पर समग्र मेट्रिक्स का निरीक्षण कर सकते हैं। firestore_instance के अंतर्गत रिपोर्ट किए गए मेट्रिक्स को प्रोजेक्ट स्तर पर एकत्रित किया जाता है।

सीमाएँ

आगे क्या होगा