Database
 sql >> Baza danych >  >> RDS >> Database

Prisma, jak wyczyścić bazę danych

Podczas testowania witryny, która korzystała z Prismy, od czasu do czasu musiałem wyczyścić bazę danych, aby wyczyścić wprowadzone dane testowe.

Możesz wyczyścić wprowadzone pozycje, używając:

await prisma.user.deleteMany({})

Jeśli z jakiegoś powodu chcesz wykonać iterację elementów w celu przetworzenia, możesz wykonać iterację w ten sposób:

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()

W tym przypadku nie robię nic więcej niż w poprzednim przykładzie, co sprawia, że ​​cały ten kod jest zbędny, ale możesz zrobić wszystko, co chcesz w deleteUser() .

Miałem jednak problem, ponieważ miałem relację między 2 tabelami, tweetami i użytkownikami. Tweet był powiązany z użytkownikiem. Najpierw musiałem usunąć wszystkie tweety, a potem wszystkich użytkowników, więc napisałem tę funkcję:

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()
}

Zwróć uwagę na użycie Promise.all() zapakować users.map() więc mogę użyć await na nim, więc wszystkie tweety są usuwane, zanim zacznę usuwać użytkowników.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsuj domyślne wartości parametrów za pomocą PowerShell – część 1

  2. NULL złożoności – część 2

  3. Operator SQL OR dla początkujących

  4. Poznaj podstawy rejestrowania w Javie

  5. Używanie isql z parametrami połączenia