首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用MongoDB配置Keystone 6

无法使用MongoDB配置Keystone 6
EN

Stack Overflow用户
提问于 2021-09-04 18:43:38
回答 1查看 678关注 0票数 3

我正在尝试使用MongoDB作为数据库来设置Keystone。在运行keystone-next时,该命令会输出错误,并显示以下错误消息:Error: Invalid db configuration. Please specify db.provider as either "sqlite" or "postgresql" at getDBProvider

在他们的文档中,对于使用MongoDB作为数据库传递什么值作为db.provider,并不是很清楚。

下面是keystone.ts的内容

代码语言:javascript
复制
import { config, createSchema } from '@keystone-next/keystone/schema'
import 'dotenv/config'

const databaseUrl =
  process.env.DATABASE_URL || 'mongodb://localhost/keystone-project'

const sessionConfig = {
  maxAge: 60 * 60 * 24 * 90,
  secret: process.env.COOKIE_SECRET || 'keystone-project-secret'
}

export default config({
  server: {
    cors: {
      origin: [process.env.FRONTEND_URL],
      credentials: true
    }
  },
  db: {
    provider: 'mongoose',
    url: databaseUrl
    // TODO: add data seeding here
  },
  lists: createSchema({
    // Schema items go here
  }),
  ui: {
    // Change this for roles}
    isAccessAllowed: () => true
  }
  // Add session values here
})

以下是来自package.json的项目依赖项

代码语言:javascript
复制
{
...
"dependencies": {
    "@keystone-next/admin-ui": "^14.1.3",
    "@keystone-next/auth": "^31.0.0",
    "@keystone-next/cloudinary": "^6.0.6",
    "@keystone-next/fields": "^14.0.0",
    "@keystone-next/keystone": "^24.0.1",
    "@keystone-next/types": "^24.0.0",
    "@keystonejs/server-side-graphql-client": "^2.1.2",
    "@types/nodemailer": "^6.4.4",
    "dotenv": "^10.0.0",
    "next": "^11.1.0",
    "nodemailer": "^6.6.3",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "stripe": "^8.169.0"
  },
  "devDependencies": {
    "@babel/preset-env": "^7.15.4",
    "@babel/preset-react": "^7.14.5",
    "@babel/preset-typescript": "^7.15.0",
    "@types/node": "^16.7.10",
    "@typescript-eslint/eslint-plugin": "^4.29.2",
    "@typescript-eslint/parser": "^4.29.2",
    "babel-eslint": "^10.1.0",
    "eslint": "^7.32.0",
    "eslint-config-airbnb": "^18.2.1",
    "eslint-config-airbnb-typescript": "^12.3.1",
    "eslint-config-prettier": "^7.2.0",
    "eslint-plugin-html": "^6.1.2",
    "eslint-plugin-import": "^2.24.0",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-prettier": "^3.4.0",
    "eslint-plugin-react": "^7.24.0",
    "eslint-plugin-react-hooks": "^4.2.0",
    "prettier": "^2.3.2",
    "typescript": "^4.3.5"
  },
...
}
EN

回答 1

Stack Overflow用户

发布于 2021-09-06 00:49:55

Keystone 6(你在这里使用的版本)还不支持Mongo。您需要指定PostgreSQL (postgresql)或SQLite (sqlite)作为DB提供程序。

版本6切换到使用Prisma作为底层ORM层,为团队提供了访问不同数据库平台的一致方式,并让我们专注于更高级别的功能。

Prisma团队正在努力添加对Mongo的支持,该功能最近被released as a preview。然而,一些特性(我认为是程序化的数据库创建和其他一些特性)阻碍了它在Keystone中的使用。PR #6102在Prisma项目中跟踪Keystone侧或#1277的进度。我不能提供和估计这将何时落地,但它正在积极进展中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69058089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档