Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Prisma, cara menghapus database

Saat menguji situs yang menggunakan Prisma, saya perlu menghapus basis data dari waktu ke waktu, untuk menghapus data uji yang saya masukkan.

Anda dapat menghapus item yang dimasukkan dengan menggunakan:

await prisma.user.deleteMany({})

Jika karena alasan tertentu Anda ingin mengulangi item untuk melakukan beberapa pemrosesan, Anda dapat mengulanginya dengan cara ini:

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

Dalam hal ini saya tidak melakukan sesuatu yang lebih dari contoh sebelumnya, yang membuat semua kode ini berlebihan, tetapi Anda dapat melakukan apa pun yang Anda inginkan di dalam deleteUser() .

Saya punya masalah karena saya memiliki hubungan antara 2 tabel, tweet, dan pengguna. Sebuah tweet dikaitkan dengan pengguna. Pertama saya harus menghapus semua tweet, lalu menghapus semua pengguna, jadi saya menulis fungsi ini:

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

Perhatikan penggunaan Promise.all() untuk membungkus users.map() jadi saya bisa menggunakan await di atasnya, jadi semua tweet dihapus sebelum saya mulai menghapus pengguna.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan kolom dalam tabel di SQL?

  2. Kiat Git &Praktik Terbaik untuk Pemula

  3. Operator SQL IN untuk Pemula

  4. KTT MVP 2013 :Tinjauan singkat dan mengintip ke depan

  5. Cara Menghapus Batasan Kunci Asing di SQL