logologo
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
logologo

क्विक स्टार्ट

Plugin डेवलपमेंट अवलोकन
अपना पहला Plugin लिखें
प्रोजेक्ट डायरेक्टरी स्ट्रक्चर

सर्वर-साइड डेवलपमेंट

अवलोकन
Plugin
कलेक्शन डेटा टेबल
डेटाबेस ऑपरेशन
DataSourceManager डेटा सोर्स प्रबंधन
ResourceManager रिसोर्स प्रबंधन
ACL परमिशन कंट्रोल
Middleware
Cache
Event
Context रिक्वेस्ट कॉन्टेक्स्ट
माइग्रेशन अपग्रेड स्क्रिप्ट
Logger
Telemetry
I18n इंटरनेशनलाइजेशन
Command लाइन
CronJobManager शेड्यूल्ड टास्क प्रबंधन
Test

क्लाइंट-साइड डेवलपमेंट

अवलोकन
Plugin
Context
Router
ACL परमिशन कंट्रोल
DataSourceManager डेटा सोर्स प्रबंधन
Resource
Request
Styles & Themes
Logger
I18n इंटरनेशनलाइजेशन
Test

अन्य

Plugin अपग्रेड गाइड
भाषा सूची
डिपेंडेंसी प्रबंधन
बिल्ड
Previous PagePlugin
Next Pageडेटाबेस ऑपरेशन
TIP

यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें

#संग्रह डेटा तालिकाएँ

NocoBase प्लगइन डेवलपमेंट में, संग्रह (डेटा तालिका) सबसे मुख्य अवधारणाओं में से एक है। आप संग्रह को परिभाषित करके या उसका विस्तार करके प्लगइन में डेटा तालिका की संरचनाओं को जोड़ या संशोधित कर सकते हैं। डेटा स्रोत प्रबंधन इंटरफ़ेस के माध्यम से बनाई गई डेटा तालिकाओं के विपरीत, कोड में परिभाषित संग्रह आमतौर पर सिस्टम-स्तरीय मेटाडेटा तालिकाएँ होती हैं और वे डेटा स्रोत प्रबंधन सूची में दिखाई नहीं देंगी।

#डेटा तालिकाएँ परिभाषित करना

पारंपरिक डायरेक्टरी संरचना के अनुसार, संग्रह फ़ाइलें ./src/server/collections डायरेक्टरी में रखी जानी चाहिए। नई तालिकाएँ बनाने के लिए defineCollection() का उपयोग करें और मौजूदा तालिकाओं का विस्तार करने के लिए extendCollection() का उपयोग करें।

import { defineCollection } from '@nocobase/database';

export default defineCollection({
  name: 'articles',
  title: 'उदाहरण लेख',
  fields: [
    { type: 'string', name: 'title', interface: 'input', uiSchema: { title: 'शीर्षक', required: true } },
    { type: 'text', name: 'content', interface: 'textarea', uiSchema: { title: 'विषय-वस्तु' } },
    {
      type: 'belongsTo',
      name: 'author',
      target: 'users',
      foreignKey: 'authorId',
      interface: 'recordPicker',
      uiSchema: { title: 'लेखक' },
    },
  ],
});

ऊपर दिए गए उदाहरण में:

  • name: तालिका का नाम (डेटाबेस में इसी नाम की एक तालिका अपने आप बन जाएगी)।
  • title: इंटरफ़ेस में इस तालिका का प्रदर्शन नाम।
  • fields: फ़ील्ड संग्रह, प्रत्येक फ़ील्ड में type, name और अन्य विशेषताएँ शामिल हैं।

जब आपको अन्य प्लगइन्स के संग्रह के लिए फ़ील्ड जोड़ने या कॉन्फ़िगरेशन संशोधित करने की आवश्यकता हो, तो आप extendCollection() का उपयोग कर सकते हैं:

import { extendCollection } from '@nocobase/database';

export default extendCollection({
  name: 'articles',
  fields: [
    {
      type: 'boolean',
      name: 'isPublished',
      defaultValue: false,
    },
  ],
});

प्लगइन को सक्रिय करने के बाद, सिस्टम अपने आप isPublished फ़ील्ड को मौजूदा articles तालिका में जोड़ देगा।

TIP

पारंपरिक डायरेक्टरी सभी प्लगइन्स के load() मेथड के निष्पादित होने से पहले लोड हो जाएगी, जिससे उन निर्भरता संबंधी समस्याओं से बचा जा सकेगा जो कुछ डेटा तालिकाओं के लोड न होने के कारण उत्पन्न होती हैं।

#डेटाबेस संरचना को सिंक्रनाइज़ करना

जब कोई प्लगइन पहली बार सक्रिय किया जाता है, तो सिस्टम अपने आप संग्रह कॉन्फ़िगरेशन को डेटाबेस संरचना के साथ सिंक्रनाइज़ कर देगा। यदि प्लगइन पहले से स्थापित और चल रहा है, तो संग्रह जोड़ने या संशोधित करने के बाद, आपको मैन्युअल रूप से अपग्रेड कमांड निष्पादित करने की आवश्यकता होगी:

yarn nocobase upgrade

यदि सिंक्रनाइज़ेशन प्रक्रिया के दौरान कोई अपवाद या दूषित डेटा (dirty data) उत्पन्न होता है, तो आप एप्लिकेशन को फिर से इंस्टॉल करके तालिका संरचना को फिर से बना सकते हैं:

yarn nocobase install -f

#संसाधनों (Resources) को अपने आप जनरेट करना

एक संग्रह को परिभाषित करने के बाद, सिस्टम अपने आप उसके लिए एक संबंधित संसाधन (Resource) जनरेट कर देगा, जिस पर आप API के माध्यम से सीधे CRUD (बनाना, पढ़ना, अपडेट करना, हटाना) ऑपरेशन कर सकते हैं। अधिक जानकारी के लिए संसाधन प्रबंधक देखें।