@adminjs/prisma

中文文档
5.0.4发布于 2025/06/18MITTypeScriptESM + CJS零依赖近 30 天下载 6.5万

行政JS 的 Prisma 适配器

中文使用文档
文档目录10 节
  1. 校长
  2. 安装
  3. 使用量
  4. 示例(基本)
  5. 示例( 自定义客户端输出路径)
  6. ManyTo One / Many 变数
  7. 调取请求
  8. 运行本地代码修改的示例应用程序
  9. 许可证
  10. 关于 rst. 软件

校长

这是官员 行政部门 集成的适配器 普里斯马 进入行政司.

安装

  • 线条 : yarn add @adminjs/prisma

  • 无 : npm install @adminjs/prisma

使用量

插件可以使用标准注册 AdminJS.registerAdapter 方法.

import { Database, Resource } from '@adminjs/prisma'
import AdminJS from 'adminjs'

AdminJS.registerAdapter({ Database, Resource })

示例(基本)

整个代码可见于 example-app 目录在仓库中.

import express from 'express'
import AdminJS from 'adminjs'
import AdminJSExpress from '@adminjs/express'
import { Database, Resource, getModelByName } from '@adminjs/prisma'
import { PrismaClient } from '@prisma/client'
import { DMMFClass } from '@prisma/client/runtime'

const PORT = process.env.port || 3000

const prisma = new PrismaClient()

AdminJS.registerAdapter({ Database, Resource })

const run = async () => {
  const app = express()

  const admin = new AdminJS({
    resources: [{
      resource: { model: getModelByName('Post'), client: prisma },
      options: {},
    }, {
      resource: { model: getModelByName('Profile'), client: prisma },
      options: {},
    }, {
      resource: { model: getModelByName('Publisher'), client: prisma },
      options: {},
    }],
  })

  const router = AdminJSExpress.buildRouter(admin)

  app.use(admin.options.rootPath, router)

  app.listen(PORT, () => {
    console.log(`Example app listening at http://localhost:${PORT}`)
  })
}

run()
  .finally(async () => {
    await prisma.$disconnect()
  })

示例( 自定义客户端输出路径)

如果您定义了您 Prisma 计划中的自定义客户端输出路径, 例如 :

generator client {
  provider = "prisma-client-js"
  output = "./client-prisma"
}

你必须:

  • 导入您的自定义 Prisma 客户端
  • 提供给每个使用 Prisma 客户端的资源

示例数字 :

// other imports
import PrismaModule from '../prisma/client-prisma/index.js';

// ...

const prisma = new PrismaModule.PrismaClient();

// ...

// Notice `clientModule` per resource
const admin = new AdminJS({
  resources: [{
    resource: { model: getModelByName('Post', PrismaModule), client: prisma, clientModule: PrismaModule },
    options: {
      properties: {
        someJson: { type: 'mixed', isArray: true },
        'someJson.number': { type: 'number' },
        'someJson.string': { type: 'string' },
        'someJson.boolean': { type: 'boolean' },
        'someJson.date': { type: 'datetime' },
      },
    },
  }, {
    resource: { model: getModelByName('Profile', PrismaModule), client: prisma, clientModule: PrismaModule },
    options: {},
  }, {
    resource: { model: getModelByName('Publisher', PrismaModule), client: prisma, clientModule: PrismaModule },
    options: {},
  }],
});

// ...

ManyTo One / Many 变数

这些关系目前没有默认支持. 您可以使用自定义动作和组件管理它们 .

调取请求

在你做公关前 确定所有的测试都通过 和你的代码不会引起linter错误. 你可以通过运行来做到这一点:

yarn lint
yarn test

确定你有一个 .env 文件为 DATABASE_URL 页:1.

运行本地代码修改的示例应用程序

需要 MySQL 数据库 。 您可以使用数据库 adminjs-example-app数字 : https://github.com/软件兄弟会/adminjs-example-app/blob/master/docker-compose.yaml#L24

$ yarn
$ yarn build                  # after making changes or run "yarn dev" and open a new terminal for next command
$ yarn link
$ cd example-app
$ yarn
$ npx prisma generate
$ npx prisma migrate dev

现在复制 example-app/node_modules/.prisma 文件夹进入 node_modules/.prisma。需要这样做,因为安装库依赖性在测试文件夹中检测到不同的Prisma schema.

继续 example-app 文件夹 :

$ yarn link "@adminjs/prisma"
$ yarn build
$ yarn start

该应用程序应从3000端口开始.

许可证

AdminJS拥有2023rst.software的版权. 它是一种自由软件,可按下列规定重新分配: 自由主义 文档.

关于 rst. 软件

我们是一个开放、友好的团队.

  • 我们随时可以 雇用。 。 。 .
  • 如果你想为我们工作.. 职业页面。 。 。 .

版本与发布记录

@adminjs/prisma 共发布 17 个版本,首次发布于 2021/10/15;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.0.4latest2025/06/181.4 年前
5.0.32024/02/122 年前
5.0.22024/02/062 年前
5.0.12023/07/243 年前
5.0.02023/07/183 年前
4.0.12023/07/123 年前

其他发布通道:beta → 4.0.0-beta.1。

关于 @adminjs/prisma 的常见问题

@adminjs/prisma 是什么?

行政JS 的 Prisma 适配器

如何安装 @adminjs/prisma?

在项目目录运行 npm install @adminjs/prisma,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@prisma/client(^5.0.0 || ^6.0.0)、adminjs(^7.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adminjs/prisma 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adminjs/prisma 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@adminjs/prisma 可以商用吗?

@adminjs/prisma 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adminjs/prisma 的下载量有多少?

根据 npm 官方下载统计,@adminjs/prisma 在 2026/10/05 – 2026/11/03 这 30 天内被下载 64,906 次,日均约 2,164 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adminjs/prisma 还在维护吗?

最新版本 5.0.4 发布于 2025/06/18(1.4 年前);至今共发布 17 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/10/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。