Database
 sql >> डेटाबेस >  >> RDS >> Database

प्रिज्मा, डेटाबेस को कैसे साफ़ करें

प्रिज्मा का उपयोग करने वाली साइट का परीक्षण करते समय मुझे अपने द्वारा दर्ज किए गए परीक्षण डेटा को साफ़ करने के लिए समय-समय पर डेटाबेस को साफ़ करने की आवश्यकता थी।

आप निम्न का उपयोग करके दर्ज किए गए आइटम साफ़ कर सकते हैं:

await prisma.user.deleteMany({})

यदि किसी कारण से आप कुछ प्रसंस्करण करने के लिए वस्तुओं पर पुनरावृति करना चाहते हैं, तो आप उन पर इस तरह से पुनरावृति कर सकते हैं:

const users = await prisma.user.findMany({})

const deleteUser = async (user) => {
  return await prisma.user.delete({
    where: { id: user.id }
  })
}

const deleteUsers = async () => {
  users.map((user) => deleteUser(user))
}

deleteUsers()

इस मामले में मैं पिछले उदाहरण से ज्यादा कुछ नहीं कर रहा हूं, जो इस सारे कोड को बेमानी बनाता है, लेकिन आप deleteUser() के अंदर कुछ भी कर सकते हैं। ।

हालांकि मुझे एक समस्या थी क्योंकि मेरा 2 टेबल, ट्वीट्स और उपयोगकर्ताओं के बीच संबंध था। एक यूजर से जुड़ा एक ट्वीट था। पहले मुझे सभी ट्वीट हटाने थे, फिर सभी उपयोगकर्ताओं को हटाना था, इसलिए मैंने यह फ़ंक्शन लिखा:

export const clearData = async (prisma) => {
  const users = await prisma.user.findMany({})
  const tweets = await prisma.tweet.findMany({})

  const deleteUser = async (user) => {
    return await prisma.user.delete({
      where: { id: user.id }
    })
  }
  const deleteTweet = async (tweet) => {
    return await prisma.tweet.delete({
      where: { id: tweet.id }
    })
  }

  const deleteTweets = async () => {
    return Promise.all(tweets.map((tweet) => deleteTweet(tweet)))
  }

  const deleteUsers = async () => {
    return Promise.all(users.map((user) => deleteUser(user)))
  }

  await deleteTweets()
  await deleteUsers()
}

Promise.all() . के उपयोग पर ध्यान दें लपेटने के लिए users.map() इसलिए मैं await use का उपयोग कर सकता हूं इस पर, इसलिए मेरे द्वारा उपयोगकर्ताओं को हटाना शुरू करने से पहले सभी ट्वीट हटा दिए जाते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पेरकोना डीबी क्या है

  2. Django चैनल के साथ शुरुआत करना

  3. SQL त्रुटियों को कैसे पढ़ें और व्याख्या करें

  4. ग्रीष्मकालीन प्रदर्शन पलूजा 2013 पर अनुवर्ती कार्रवाई

  5. घुटना टेककर प्रतीक्षा सांख्यिकी :CXPACKET