【问题标题】:How to work with more than one sequelize DB connection in NestJS如何在 NestJS 中使用多个 sequelize DB 连接
【发布时间】:2019-06-18 01:20:43
【问题描述】:

我正在使用 NestJS Documentation 中的示例来了解如何设置 Sequelize DB 连接。如何使用 NestJS 的 Sequelize 和 TypeScript 设置与两个以上数据库的连接。

【问题讨论】:

    标签: javascript node.js typescript nestjs sequelize-typescript


    【解决方案1】:

    您可以在databaseProviders 中设置多个 Sequelize 连接:

    export const databaseProviders = [
      {
        provide: 'SequelizeCatToken',
        useFactory: async () => {
          const sequelize = new Sequelize({
            dialect: 'mysql',
            host: 'localhost',
            port: 3306,
            username: 'catroot',
            password: 'catpassword',
            database: 'cats',
          });
          sequelize.addModels([Cat]);
          await sequelize.sync();
          return sequelize;
        },
      },  
      {
        provide: 'SequelizeDogToken',
        useFactory: async () => {
          const sequelize = new Sequelize({
            dialect: 'mysql',
            host: 'localhost',
            port: 3306,
            username: 'doogroot',
            password: 'dogpassword',
            database: 'dogs',
          });
          sequelize.addModels([Dog]);
          await sequelize.sync();
          return sequelize;
        },
      },
    ];
    

    【讨论】:

      【解决方案2】:

      您必须使用name 进行连接,这是强制性的。

      const defaultOptions = {
        dialect: 'postgres',
        port: 5432,
        username: 'user',
        password: 'password',
        database: 'db',
        synchronize: true,
      };
      
      @Module({
        imports: [
          SequelizeModule.forRoot({
            ...defaultOptions,
            host: 'user_db_host',
            models: [User],
          }),
          SequelizeModule.forRoot({
            ...defaultOptions,
            name: 'albumsConnection',
            host: 'album_db_host',
            models: [Album],
          }),
        ],
      })
      export class AppModule {}
      

      这是Nest中的文档

      【讨论】:

        猜你喜欢
        • 2021-06-23
        • 2022-07-11
        • 2022-08-02
        • 1970-01-01
        • 2015-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        相关资源
        最近更新 更多