将prisma seed.ts放置在Next.js 13中的哪个位置,以及appDir将种子数据应用到超级数据库中?

nkoocmlb  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(127)

我试图从Next.js 13应用程序使用appDir将种子数据应用到supbase数据库中。在一些教程和文章中,你可以将seed文件放在pages/api中,一旦它运行下一个API服务器,seed数据就会被应用。我想尝试一下,但是用appDir构建的Next.13项目没有pages目录。Project file structure
我试着把种子文件放在app/api而不是pages/api中,然后运行下一个API服务器,但是没有工作。
此外,我尝试了另一种应用seed的方法,即将seed.ts放在包含schema.prisma的prisma文件夹中,然后运行npx prisma db seed,脚本和prisma设置如下:
package.json

{
  "name": "next-learn",
  "version": "0.1.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "seed": "node prisma/seed.ts"
  },
  "dependencies": {
    "@prisma/client": "4.12.0",
    "@types/node": "^18.15.11",
    "@types/react": "18.0.33",
    "@types/react-dom": "18.0.11",
    "autoprefixer": "10.4.14",
    "eslint": "8.38.0",
    "eslint-config-next": "13.3.0",
    "next": "13.3.0",
    "postcss": "8.4.21",
    "prisma": "^4.12.0",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "tailwindcss": "3.3.1",
    "typescript": "^5.0.4"
  },
  "devDependencies": {
    "ts-node": "^10.9.1"
  },
  "prisma": {
    "seed": "node --loader ts-node/esm prisma/seed.ts"
  }
}

next.config.js

/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    appDir: true,
  },
}

module.exports = nextConfig

我很乐意学习如何在next.js 13中使用appDir应用seed。

axr492tv

axr492tv1#

你只需要创建pages/API文件夹,把seed.ts放在里面,然后转到localhost:3000/api/seed。Pages文件夹不应位于应用程序目录中,此文件夹必须位于项目的根目录中

相关问题