यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
डेटाबेस NocoBase द्वारा प्रदान किया गया एक डेटाबेस इंटरैक्शन टूल है, जो नो-कोड और लो-कोड एप्लिकेशनों के लिए बहुत सुविधाजनक डेटाबेस इंटरैक्शन क्षमताएँ प्रदान करता है। वर्तमान में समर्थित डेटाबेस हैं:
Database कंस्ट्रक्टर में, आप options पैरामीटर पास करके डेटाबेस कनेक्शन को कॉन्फ़िगर कर सकते हैं।
विस्तृत कॉन्फ़िगरेशन पैरामीटर के लिए, कृपया कंस्ट्रक्टर देखें।
Database संग्रह (Collection) के माध्यम से डेटाबेस संरचना को परिभाषित करता है। एक संग्रह ऑब्जेक्ट डेटाबेस में एक तालिका (table) का प्रतिनिधित्व करता है।
डेटाबेस संरचना परिभाषित होने के बाद, आप डेटाबेस संरचना को सिंक्रनाइज़ करने के लिए sync() विधि का उपयोग कर सकते हैं।
संग्रह (Collection) के अधिक विस्तृत उपयोग के लिए, कृपया संग्रह देखें।
Database रिपॉजिटरी (Repository) के माध्यम से डेटा पर ऑपरेशन करता है।
डेटा CRUD के अधिक विस्तृत उपयोग के लिए, कृपया रिपॉजिटरी देखें।
सिग्नेचर
constructor(options: DatabaseOptions)एक डेटाबेस इंस्टेंस बनाता है।
पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options.host | string | 'localhost' | डेटाबेस होस्ट |
options.port | number | - | डेटाबेस सेवा पोर्ट, उपयोग किए गए डेटाबेस के अनुसार एक डिफ़ॉल्ट पोर्ट होता है |
options.username | string | - | डेटाबेस यूज़रनेम |
options.password | string | - | डेटाबेस पासवर्ड |
options.database | string | - | डेटाबेस नाम |
options.dialect | string | 'mysql' | डेटाबेस टाइप |
options.storage? | string | ':memory:' | SQLite के लिए स्टोरेज मोड |
options.logging? | boolean | false | क्या लॉगिंग सक्षम करनी है |
options.define? | Object | {} | डिफ़ॉल्ट तालिका परिभाषा पैरामीटर |
options.tablePrefix? | string | '' | NocoBase एक्सटेंशन, तालिका नाम प्रीफ़िक्स |
options.migrator? | UmzugOptions | {} | NocoBase एक्सटेंशन, माइग्रेशन मैनेजर से संबंधित पैरामीटर, Umzug इम्प्लीमेंटेशन देखें |
addMigration()एक एकल माइग्रेशन फ़ाइल जोड़ता है।
सिग्नेचर
addMigration(options: MigrationItem)पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options.name | string | - | माइग्रेशन फ़ाइल का नाम |
options.context? | string | - | माइग्रेशन फ़ाइल का कॉन्टेक्स्ट |
options.migration? | typeof Migration | - | माइग्रेशन फ़ाइल के लिए कस्टम क्लास |
options.up | Function | - | माइग्रेशन फ़ाइल की up विधि |
options.down | Function | - | माइग्रेशन फ़ाइल की down विधि |
उदाहरण
addMigrations()एक निर्दिष्ट डायरेक्टरी से माइग्रेशन फ़ाइलें जोड़ता है।
सिग्नेचर
addMigrations(options: AddMigrationsOptions): voidपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options.directory | string | '' | माइग्रेशन फ़ाइलें जिस डायरेक्टरी में स्थित हैं |
options.extensions | string[] | ['js', 'ts'] | फ़ाइल एक्सटेंशन |
options.namespace? | string | '' | नेमस्पेस |
options.context? | Object | { db } | माइग्रेशन फ़ाइल का कॉन्टेक्स्ट |
उदाहरण
inDialect()जाँचता है कि वर्तमान डेटाबेस टाइप निर्दिष्ट टाइप में से एक है या नहीं।
सिग्नेचर
inDialect(dialect: string[]): booleanपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
dialect | string[] | - | डेटाबेस टाइप, संभावित मान mysql/postgres/mariadb हैं |
getTablePrefix()कॉन्फ़िगरेशन से तालिका नाम प्रीफ़िक्स प्राप्त करता है।
सिग्नेचर
getTablePrefix(): stringcollection()एक संग्रह (collection) को परिभाषित करता है। यह कॉल Sequelize के define विधि के समान है, जो केवल मेमोरी में तालिका संरचना बनाता है। इसे डेटाबेस में स्थायी करने के लिए, आपको sync विधि को कॉल करना होगा।
सिग्नेचर
collection(options: CollectionOptions): Collectionपैरामीटर्स
options के सभी कॉन्फ़िगरेशन पैरामीटर संग्रह (Collection) क्लास के कंस्ट्रक्टर के अनुरूप हैं, संग्रह देखें।
इवेंट्स
'beforeDefineCollection': एक संग्रह को परिभाषित करने से पहले ट्रिगर होता है।'afterDefineCollection': एक संग्रह को परिभाषित करने के बाद ट्रिगर होता है।उदाहरण
getCollection()एक परिभाषित संग्रह (collection) प्राप्त करता है।
सिग्नेचर
getCollection(name: string): Collectionपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
name | string | - | संग्रह का नाम |
उदाहरण
hasCollection()जाँचता है कि एक निर्दिष्ट संग्रह (collection) परिभाषित किया गया है या नहीं।
सिग्नेचर
hasCollection(name: string): booleanपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
name | string | - | संग्रह का नाम |
उदाहरण
removeCollection()एक परिभाषित संग्रह (collection) को हटाता है। इसे केवल मेमोरी से हटाया जाता है; परिवर्तन को स्थायी करने के लिए, आपको sync विधि को कॉल करना होगा।
सिग्नेचर
removeCollection(name: string): voidपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
name | string | - | संग्रह का नाम |
इवेंट्स
'beforeRemoveCollection': एक संग्रह को हटाने से पहले ट्रिगर होता है।'afterRemoveCollection': एक संग्रह को हटाने के बाद ट्रिगर होता है।उदाहरण
import()एक डायरेक्टरी में सभी फ़ाइलों को संग्रह (collection) कॉन्फ़िगरेशन के रूप में मेमोरी में इम्पोर्ट करता है।
सिग्नेचर
async import(options: { directory: string; extensions?: ImportFileExtension[] }): Promise<Map<string, Collection>>पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options.directory | string | - | इम्पोर्ट करने के लिए डायरेक्टरी का पाथ |
options.extensions | string[] | ['ts', 'js'] | विशिष्ट सफ़िक्स के लिए स्कैन करें |
उदाहरण
./collections/books.ts फ़ाइल में परिभाषित संग्रह (collection) इस प्रकार है:
प्लगइन लोड होने पर संबंधित कॉन्फ़िगरेशन इम्पोर्ट करें:
registerFieldTypes()कस्टम फ़ील्ड टाइप पंजीकृत करता है।
सिग्नेचर
registerFieldTypes(fieldTypes: MapOf<typeof Field>): voidपैरामीटर्स
fieldTypes एक की-वैल्यू पेयर है जहाँ की फ़ील्ड टाइप का नाम है और वैल्यू फ़ील्ड टाइप क्लास है।
उदाहरण
registerModels()कस्टम डेटा मॉडल क्लास पंजीकृत करता है।
सिग्नेचर
registerModels(models: MapOf<ModelStatic<any>>): voidपैरामीटर्स
models एक की-वैल्यू पेयर है जहाँ की डेटा मॉडल का नाम है और वैल्यू डेटा मॉडल क्लास है।
उदाहरण
registerRepositories()कस्टम रिपॉजिटरी क्लास पंजीकृत करता है।
सिग्नेचर
registerRepositories(repositories: MapOf<RepositoryType>): voidपैरामीटर्स
repositories एक की-वैल्यू पेयर है जहाँ की रिपॉजिटरी का नाम है और वैल्यू रिपॉजिटरी क्लास है।
उदाहरण
registerOperators()कस्टम डेटा क्वेरी ऑपरेटर पंजीकृत करता है।
सिग्नेचर
registerOperators(operators: MapOf<OperatorFunc>)पैरामीटर्स
operators एक की-वैल्यू पेयर है जहाँ की ऑपरेटर का नाम है और वैल्यू तुलना स्टेटमेंट जनरेट करने वाला फ़ंक्शन है।
उदाहरण
getModel()एक परिभाषित डेटा मॉडल क्लास प्राप्त करता है। यदि पहले कोई कस्टम मॉडल क्लास पंजीकृत नहीं की गई थी, तो यह Sequelize की डिफ़ॉल्ट मॉडल क्लास लौटाएगा। डिफ़ॉल्ट नाम संग्रह (collection) में परिभाषित नाम के समान होता है।
सिग्नेचर
getModel(name: string): Modelपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
name | string | - | पंजीकृत मॉडल का नाम |
उदाहरण
ध्यान दें: संग्रह (collection) से प्राप्त मॉडल क्लास पंजीकृत मॉडल क्लास के बिल्कुल समान नहीं होती है, बल्कि यह पंजीकृत मॉडल क्लास से इनहेरिट होती है। चूंकि Sequelize की मॉडल क्लास के गुण इनिशियलाइज़ेशन प्रक्रिया के दौरान संशोधित होते हैं, इसलिए NocoBase इस इनहेरिटेंस संबंध को स्वचालित रूप से संभालता है। क्लास के असमान होने के अलावा, अन्य सभी परिभाषाओं का सामान्य रूप से उपयोग किया जा सकता है।
getRepository()एक कस्टम रिपॉजिटरी क्लास प्राप्त करता है। यदि पहले कोई कस्टम रिपॉजिटरी क्लास पंजीकृत नहीं की गई थी, तो यह NocoBase की डिफ़ॉल्ट रिपॉजिटरी क्लास लौटाएगा। डिफ़ॉल्ट नाम संग्रह (collection) में परिभाषित नाम के समान होता है।
रिपॉजिटरी क्लास मुख्य रूप से डेटा मॉडल पर आधारित CRUD (बनाना, पढ़ना, अपडेट करना, हटाना) ऑपरेशनों के लिए उपयोग की जाती हैं, रिपॉजिटरी देखें।
सिग्नेचर
getRepository(name: string): RepositorygetRepository(name: string, relationId?: string | number): Repositoryपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
name | string | - | पंजीकृत रिपॉजिटरी का नाम |
relationId | string | number | - | संबंधपरक डेटा के लिए फ़ॉरेन की वैल्यू |
जब नाम 'tables.relations' जैसे संबंधपरक नाम के रूप में होता है, तो यह संबंधित रिपॉजिटरी क्लास लौटाएगा। यदि दूसरा पैरामीटर प्रदान किया जाता है, तो रिपॉजिटरी का उपयोग करते समय (क्वेरी करना, अपडेट करना आदि) यह संबंधपरक डेटा के फ़ॉरेन की वैल्यू पर आधारित होगा।
उदाहरण
मान लीजिए कि दो संग्रह (collections) हैं, पोस्ट और लेखक, और पोस्ट संग्रह में एक फ़ॉरेन की है जो लेखक संग्रह की ओर इशारा करती है:
on()डेटाबेस इवेंट्स को सुनता है।
सिग्नेचर
on(event: string, listener: (...args: any[]) => void | Promise<void>): voidपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
| event | string | - | इवेंट का नाम |
| listener | Function | - | इवेंट लिसनर |
इवेंट के नाम डिफ़ॉल्ट रूप से Sequelize के मॉडल इवेंट्स को सपोर्ट करते हैं। ग्लोबल इवेंट्स के लिए, <sequelize_model_global_event> फ़ॉर्मेट का उपयोग करके सुनें, और एकल मॉडल इवेंट्स के लिए, <model_name>.<sequelize_model_event> फ़ॉर्मेट का उपयोग करके सुनें।
सभी बिल्ट-इन इवेंट टाइप के पैरामीटर विवरण और विस्तृत उदाहरणों के लिए, बिल्ट-इन इवेंट्स सेक्शन देखें।
off()एक इवेंट लिसनर फ़ंक्शन हटाता है।
सिग्नेचर
off(name: string, listener: Function)पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
| name | string | - | इवेंट का नाम |
| listener | Function | - | इवेंट लिसनर |
उदाहरण
auth()डेटाबेस कनेक्शन प्रमाणीकरण। इसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि एप्लिकेशन ने डेटा के साथ कनेक्शन स्थापित कर लिया है।
सिग्नेचर
auth(options: QueryOptions & { retry?: number } = {}): Promise<boolean>पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options? | Object | - | प्रमाणीकरण विकल्प |
options.retry? | number | 10 | प्रमाणीकरण विफल होने पर पुनः प्रयास की संख्या |
options.transaction? | Transaction | - | ट्रांजेक्शन ऑब्जेक्ट |
options.logging? | boolean | Function | false | क्या लॉग प्रिंट करने हैं |
उदाहरण
reconnect()डेटाबेस से फिर से कनेक्ट होता है।
उदाहरण
closed()जाँचता है कि डेटाबेस कनेक्शन बंद है या नहीं।
सिग्नेचर
closed(): booleanclose()डेटाबेस कनेक्शन बंद करता है। sequelize.close() के समान है।
sync()डेटाबेस संग्रह (collection) संरचना को सिंक्रनाइज़ करता है। sequelize.sync() के समान है, पैरामीटर के लिए Sequelize डॉक्यूमेंटेशन देखें।
clean()डेटाबेस को साफ़ करता है, सभी संग्रह (collections) को हटा देगा।
सिग्नेचर
clean(options: CleanOptions): Promise<void>पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
options.drop | boolean | false | क्या सभी संग्रह (collections) हटाने हैं |
options.skip | string[] | - | छोड़े जाने वाले संग्रह (collection) नामों का कॉन्फ़िगरेशन |
options.transaction | Transaction | - | ट्रांजेक्शन ऑब्जेक्ट |
उदाहरण
users संग्रह (collection) को छोड़कर सभी संग्रह (collections) हटाता है।
defineCollection()एक संग्रह (collection) के लिए कॉन्फ़िगरेशन सामग्री बनाता है।
सिग्नेचर
defineCollection(name: string, config: CollectionOptions): CollectionOptionsपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
collectionOptions | CollectionOptions | - | db.collection() के सभी पैरामीटर के समान |
उदाहरण
db.import() द्वारा इम्पोर्ट की जाने वाली संग्रह (collection) कॉन्फ़िगरेशन फ़ाइल के लिए:
extendCollection()मेमोरी में पहले से मौजूद संग्रह (collection) संरचना कॉन्फ़िगरेशन सामग्री का विस्तार करता है, मुख्य रूप से import() विधि द्वारा इम्पोर्ट की गई फ़ाइल सामग्री के लिए उपयोग किया जाता है। यह विधि @nocobase/database पैकेज द्वारा एक्सपोर्ट की गई एक टॉप-लेवल विधि है और इसे db इंस्टेंस के माध्यम से कॉल नहीं किया जाता है। extend उपनाम का भी उपयोग किया जा सकता है।
सिग्नेचर
extendCollection(collectionOptions: CollectionOptions, mergeOptions?: MergeOptions): ExtendedCollectionOptionsपैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
collectionOptions | CollectionOptions | - | db.collection() के सभी पैरामीटर के समान |
mergeOptions? | MergeOptions | - | npm पैकेज deepmerge के लिए पैरामीटर |
उदाहरण
मूल बुक्स संग्रह (collection) परिभाषा (books.ts):
विस्तारित बुक्स संग्रह (collection) परिभाषा (books.extend.ts):
यदि ऊपर दिए गए दो फ़ाइलों को import() को कॉल करते समय इम्पोर्ट किया जाता है, और extend() के साथ फिर से विस्तारित किया जाता है, तो बुक्स संग्रह (collection) में title और price दोनों फ़ील्ड होंगे।
यह विधि मौजूदा प्लगइन्स द्वारा पहले से परिभाषित संग्रह (collection) संरचनाओं का विस्तार करने के लिए बहुत उपयोगी है।
डेटाबेस अपने जीवनचक्र के विभिन्न चरणों में निम्नलिखित संबंधित इवेंट्स को ट्रिगर करता है। on() विधि के साथ उन्हें सब्सक्राइब करने के बाद विशिष्ट प्रोसेसिंग करके कुछ व्यावसायिक आवश्यकताओं को पूरा किया जा सकता है।
'beforeSync' / 'afterSync'जब एक नई संग्रह (collection) संरचना कॉन्फ़िगरेशन (फ़ील्ड, इंडेक्स आदि) डेटाबेस में सिंक्रनाइज़ की जाती है, तो उससे पहले और बाद में यह ट्रिगर होता है। यह आमतौर पर collection.sync() (आंतरिक कॉल) निष्पादित होने पर ट्रिगर होता है और आमतौर पर विशेष फ़ील्ड एक्सटेंशन के लॉजिक को संभालने के लिए उपयोग किया जाता है।
सिग्नेचर
टाइप
उदाहरण
'beforeValidate' / 'afterValidate'डेटा बनाने या अपडेट करने से पहले, संग्रह (collection) में परिभाषित नियमों के आधार पर डेटा का सत्यापन (validation) होता है। सत्यापन से पहले और बाद में संबंधित इवेंट्स ट्रिगर होते हैं। यह repository.create() या repository.update() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'beforeCreate' / 'afterCreate'एक रिकॉर्ड बनाने से पहले और बाद में संबंधित इवेंट्स ट्रिगर होते हैं। यह repository.create() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'beforeUpdate' / 'afterUpdate'एक रिकॉर्ड अपडेट करने से पहले और बाद में संबंधित इवेंट्स ट्रिगर होते हैं। यह repository.update() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'beforeSave' / 'afterSave'एक रिकॉर्ड बनाने या अपडेट करने से पहले और बाद में संबंधित इवेंट्स ट्रिगर होते हैं। यह repository.create() या repository.update() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'beforeDestroy' / 'afterDestroy'एक रिकॉर्ड हटाने से पहले और बाद में संबंधित इवेंट्स ट्रिगर होते हैं। यह repository.destroy() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'afterCreateWithAssociations'पदानुक्रमित संबंध डेटा के साथ एक रिकॉर्ड बनाने के बाद यह इवेंट ट्रिगर होता है। यह repository.create() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'afterUpdateWithAssociations'पदानुक्रमित संबंध डेटा के साथ एक रिकॉर्ड अपडेट करने के बाद यह इवेंट ट्रिगर होता है। यह repository.update() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'afterSaveWithAssociations'पदानुक्रमित संबंध डेटा के साथ एक रिकॉर्ड बनाने या अपडेट करने के बाद यह इवेंट ट्रिगर होता है। यह repository.create() या repository.update() को कॉल करने पर ट्रिगर होता है।
सिग्नेचर
टाइप
उदाहरण
'beforeDefineCollection'एक संग्रह (collection) को परिभाषित करने से पहले ट्रिगर होता है, जैसे db.collection() को कॉल करने पर।
ध्यान दें: यह एक सिंक्रोनस इवेंट है।
सिग्नेचर
टाइप
उदाहरण
'afterDefineCollection'एक संग्रह (collection) को परिभाषित करने के बाद ट्रिगर होता है, जैसे db.collection() को कॉल करने पर।
ध्यान दें: यह एक सिंक्रोनस इवेंट है।
सिग्नेचर
टाइप
उदाहरण
'beforeRemoveCollection' / 'afterRemoveCollection'जब एक संग्रह (collection) को मेमोरी से हटाया जाता है, तो उससे पहले और बाद में यह ट्रिगर होता है, जैसे db.removeCollection() को कॉल करने पर।
ध्यान दें: यह एक सिंक्रोनस इवेंट है।
सिग्नेचर
टाइप
उदाहरण