小编sag*_*ert的帖子

NestJS + TypeORM:使用两个或多个数据库?

自2天以来,我一直在尝试解决此问题,也许我只是在这里遗漏了要点。

我的目标是编写一个NestJS应用程序(包括TypeORM),该应用程序为我的2个或3个小项目提供RestAPI,而不是为其中每个项目都编写一个NestJS-App。

到目前为止,该应用程序已经准备就绪,可以与单个项目(包含其实体,控制器,服务,模块的子文件夹)一起很好地工作,但是我无法使其与所有项目一起运行。

关键似乎是配置,我正在使用ormconfig.json

[ {
    "name": "Project1",
    "type": "mysql",
    "host": "localhost",
    "port": 3306,
    "username": "<username>",
    "password": "<pwd>",
    "database": "<database>",
    "synchronize": false,
    "entities": ["project1/*.entity.ts"],
    "subscribers": ["project1/*.subscriber.ts"],
    "migrations": ["project1/migrations/*.ts"],
    "cli": { "migrationsDir": "project1/migrations" }
}, {
    "name": "project2",
    "type": "mysql",
    "host": "localhost",
    "port": 3306,
    "username": "<another-username>",
    "password": "<another-pwd>",
    "database": "<another-database>",
    "synchronize": false,
    "entities": ["project2/*.entity.ts"],
    "subscribers": ["project2/*.subscriber.ts"],
    "migrations": ["project2/migrations/*.ts"],
    "cli": { "migrationsDir": "project2/migrations"
    } ]
Run Code Online (Sandbox Code Playgroud)

错误消息显示:

[ExceptionHandler]找不到连接默认值,因为它未在任何orm配置文件中定义

当然找不到“默认”,因为我提供了两个配置,它们的唯一名称不同于“默认”。

ApplicationModule中,我可以提供连接的名称,如下所示:

TypeOrmModule.forRoot( { name: "project1" } ),
Run Code Online (Sandbox Code Playgroud)

但是它仅适用于一个项目。

我可以将所有内容混合在一个配置中,但随后我会将所有内容都存储在一个数据库中,所有用户都由同一用户使用,并且可能混合实体...

有人可以给我提示如何解决这个问题吗?也许 …

javascript node.js typeorm nestjs

7
推荐指数
4
解决办法
3245
查看次数

NestJS与TypeORM:使用自定义存储库时,是否需要服务?

新手问题:在使用NestJS和TypeORM时,有人创建了一个自定义存储库(扩展了标准存储库),是否需要一个单独的服务类?

目前,我只使用自定义Repository类,它工作正常,但我不确定这是否正确,可能有一些副作用.

顺便说一句,在另一个项目中,我没有自定义回购,只有一个服务可以获得两个标准回购,这也很好.

此致,
萨格罗伯特

typeorm nestjs

3
推荐指数
1
解决办法
3023
查看次数

标签 统计

nestjs ×2

typeorm ×2

javascript ×1

node.js ×1