TypeORM是否支持RavenDB?配置方案及使用经验咨询
回答
- 原生TypeORM根本不支持对接RavenDB,你写的
type: 'ravendb'配置完全无效,启动就会报「不支持的数据库类型」错误。另外你贴的配置里填的3306端口、username/password字段都是MySQL这类关系型数据库的连接参数,RavenDB作为文档数据库的连接、认证逻辑和关系型数据库完全不一样,套这套参数根本连不上服务。 - 目前没有能稳定跑在生产环境的TypeORM对接RavenDB的实践经验可以参考。社区早年有过几个零散的第三方适配项目,但基本都停更3年以上,只适配了TypeORM 0.2.x甚至更老的版本,和现在主流的0.3.x版本的DataSource API完全不兼容,强行用会出各种莫名其妙的问题,踩坑了连能参考的排查资料都找不到。
- TypeORM官方从来没给RavenDB加过专属的
type配置类型。去翻TypeORM源码里的数据库类型枚举就能看到,官方原生支持的库只有MySQL、PostgreSQL、MariaDB、SQLite、SQL Server、Oracle、MongoDB这些,根本没把RavenDB纳入支持列表,写TS的时候这个配置值首先就过不了类型校验。
实际做项目如果要用RavenDB,别硬凑TypeORM的生态,直接用RavenDB官方出的Node.js客户端就行,它本身自带完整的对象映射、变更追踪、索引管理、事务控制能力,常规数据操作需求都能覆盖。要是在NestJS这类框架里用,把官方客户端封装成可注入的Provider就可以,适配成本非常低。
你提供的无效配置示例如下:
useFactory: async () => { // 该配置无法正常运行,TypeORM不识别ravendb数据库类型 const dataSource = new DataSource({ type: 'ravendb', host: 'localhost', port: 3306, username: 'root', password: 'root', database: 'test', entities: [ __dirname + '/../**/*.entity{.ts,.js}', ], synchronize: true, }); }
内容的提问来源于stack exchange,提问作者amir。
相关产品推荐
相关产品推荐

