Keystone 6配置MongoDB报错:db.provider仅支持sqlite或postgresql如何解决
Keystone 6 适配MongoDB的解决方案
核心原因
你当前使用的Keystone 6(即所有@keystone-next开头的依赖版本)已经官方移除了MongoDB数据库支持,仅保留PostgreSQL和SQLite两种数据库适配,所以没有对应的db.provider参数值可以填MongoDB相关的配置,这就是你报错的根本原因。
可选解决方案
- 方案1:降级到Keystone 5版本使用MongoDB
Keystone 5(依赖包以@keystonejs开头)原生支持MongoDB,降级后你当前配置里db.provider: 'mongoose'的写法即可正常生效。 - 方案2:保留Keystone 6切换支持的数据库
仅需修改keystone.ts中db配置即可,两种可选数据库的配置示例如下:// 用PostgreSQL db: { provider: 'postgresql', url: process.env.DATABASE_URL || 'postgres://localhost/keystone-project' } // 用SQLite db: { provider: 'sqlite', url: 'file:./keystone.db' }
注意
Keystone 6没有任何兼容MongoDB的配置方案,底层数据库适配层已经完全删除了MongoDB相关的逻辑,不存在修改参数就能适配MongoDB的可能。
内容的提问来源于stack exchange,提问作者Mauro P.
相关产品推荐
相关产品推荐

