gpt4 book ai didi

mongodb - 无法使用 MongoDB 配置 Keystone 6

转载 作者:行者123 更新时间:2023-12-05 02:39:34 24 4
gpt4 key购买 nike

我正在尝试使用 MongoDB 作为数据库来设置 Keystone。运行 keystone-next 时,命令出错并显示以下错误消息:错误:数据库配置无效。请在 getDBProvider 中将 db.provider 指定为“sqlite”或“postgresql”

他们的文档没有明确说明要将哪些值作为 db.provider 传递以将 MongoDB 用作数据库。

keystone.ts 的内容如下:

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 的项目依赖项:

{
...
"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"
},
...
}

最佳答案

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

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

Prisma 团队正在努力添加 Mongo 支持,该功能最近已发布 released as a preview .然而,某些功能(程序化数据库创建和我认为的其他一些功能)正在阻止它与 Keystone 一起使用。 PR #6102跟踪 Keystone 方面的进度或 #1277在 Prisma 项目中。我无法提供和估计这将在何时落地,但它正在积极推进中。

关于mongodb - 无法使用 MongoDB 配置 Keystone 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69058089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com