ऑराबेस लोगो
aurabaseडॉक्स
डॉक्स›गाइड›Generate TypeScript types

अपने डेटाबेस से TypeScript प्रकार उत्पन्न करें

एक कमांड आपकी तालिकाओं को प्रकारों में बदल देता है। आपके कुछ भी चलाने से पहले आपका संपादक किसी गलत कॉलम या गलत मान को अस्वीकार कर देता है।

4 मि॰ पढ़ें·स्तर शुरुआत·12 अक्टू॰ 2026 पर संशोधित
यह अंग्रेजी पाठ फ़्रेंच मूल से स्वचालित रूप से उत्पन्न हुआ था और अभी तक इसकी समीक्षा नहीं की गई है।
यह पृष्ठ स्वचालित रूप से अनुवादित किया गया था. अंग्रेजी संस्करण प्रामाणिक है.
#
उत्पन्न

1. फ़ाइल जनरेट करें

terminalbash
npx @aurabase/gen --url https://my-app.aurabase.cloud --key "$AURA_ANON_KEY" --out src/types/database.types.ts

टूल आपके प्रोजेक्ट की स्कीमा पढ़ता है और फ़ाइल लिखता है। --url और --key के बिना, यह आपके वातावरण में और .env, .env.local और .env.development में AURABASE_URL और AURABASE_ANON_KEY (NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL और AURABASE_SERVICE_ROLE_KEY भी) की तलाश करता है।

दो तालिकाओं और दो कार्यों वाले एक प्रोजेक्ट पर, इसने उत्तर दिया:

text
[aurabase-gen] ✓ Types écrits dans /tmp/database.types.ts (2 table(s), 2 fonction(s), 0 enum(s), 0 vue(s)).

जब भी स्कीम बदले तो इसे दोबारा चलाएँ। public के अलावा किसी अन्य स्कीमा के लिए --schema <name> और मुख्य प्रकार का नाम बदलने के लिए --type-name जोड़ें।

#
उपयोग

2. इसे क्लाइंट के साथ प्रयोग करें

src/lib/aurabase.tstypescript
import { createClient } from '@aurabase/aurabase-js'
import type { Database } from '../types/database.types'

export const aura = createClient<Database>(process.env.AURA_URL!, process.env.AURA_ANON_KEY!)

उत्पन्न प्रकार प्रत्येक तालिका का वर्णन Row, Insert और Update के साथ करता है। एक वास्तविक फ़ाइल के विरुद्ध, संकलक ने ये परिणाम दिए:

checked.tstypescript
const { data } = await aura.from('todos').select('id, title, done')
const title: string | undefined = data?.[0]?.title   // ठीक है

const wrong: number | undefined = data?.[0]?.title   // त्रुटि: स्ट्रिंग संख्या के लिए निर्दिष्ट नहीं है
await aura.from('todos').insert({ title: 1 })         // त्रुटि: संख्या स्ट्रिंग के लिए निर्दिष्ट नहीं है
await aura.from('todos').insert({ title: 'ok' })      // ठीक है: अन्य कॉलम में डिफ़ॉल्ट हैं

Insert में, डिफ़ॉल्ट या अशक्त कॉलम वाला कॉलम वैकल्पिक है। Update में, प्रत्येक कॉलम वैकल्पिक है।

#
सहायकों

3. आपके घटकों के लिए पंक्ति प्रकार

Todo.tsxtypescript
import type { Tables, TablesInsert, TablesUpdate, Enums } from '../types/database.types'

type Todo = Tables<'todos'>             // एक पंक्ति, जैसा पढ़ा गया
type NewTodo = TablesInsert<'todos'>    // क्या Insert() स्वीकार करता है
type TodoPatch = TablesUpdate<'todos'>  // क्या अद्यतन() स्वीकार करता है

Enums<'name'> डेटाबेस एनम का मान देता है।

#
सीमाएं

4. क्या जांचा जाता है

  • एक तालिका जो जेनरेट की गई फ़ाइल में नहीं है वह है, अस्वीकृत नहीं है: aura.from('anything') अभी भी संकलित है, और इसकी पंक्तियाँ अलिखित हैं।
  • फ़ंक्शन अपने तर्कों के साथ Functions के अंतर्गत दिखाई देते हैं। एक फ़ंक्शन जो एक कस्टम पंक्ति प्रकार लौटाता है वह Json या unknown के रूप में दिखता है।
  • फ़ाइल आपके द्वारा जेनरेट किए गए समय की स्कीमा को दर्शाती है। बाद में जोड़ा गया कॉलम तब तक अज्ञात होता है जब तक आप टूल को दोबारा नहीं चलाते।
  • प्रकार उत्पन्न करने के लिए सार्वजनिक कुंजी का उपयोग करें जब तक कि कुछ तालिकाएँ इससे छिपी न हों। कभी भी service_role कुंजी न लिखें।