egg-sequelize如何连2个数据库。

'use strict';

module.exports = appInfo => {
  const config = {};

  // should change to your own
  config.keys = appInfo.name + '_sequelize-example';

  config.sequelize = {
    dialect: 'mssql', // support: mysql, mariadb, postgres, mssql
    database: 'mydb',
    host: '192.168.0.110',
    port: '1433',
    username: 'sa',
    password: '123456',
    timezone: 'Asia/Shanghai'
  };

  config.cors = {
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
    credentials: true
  };
  
  config.static = {
    // dir: path.join(appInfo.baseDir, 'app/public'),
    dir: 'app/public',
    prefix: '',
    dynamic: true,
    preload: false,
    buffer: false,
    maxFiles: 10000,
  }

// 以下为可用配置
  config.security = {
    domainWhiteList: [ 
      '192.168.1.105:8080',
      '192.168.1.100:8080',
    ],
    xframe: {
      enable: false,
    },
    csrf: {
      ignoreJSON: true, // 默认为 false,当设置为 true 时,将会放过所有 content-type 为 `application/json` 的请求
    },
  };

  return config;
};

这里我假如要操作多个库,config.sequelize该如何配置呢?请教大牛,现金感谢

官方文档给的办法是
config.sequelize = {
datasources: [

 {
    delegate: 'ufModel',
    baseDir: 'uf_model',
    database: 'UFData_999_2011',
    dialect: 'mssql', // support: mysql, mariadb, postgres, mssql
    host: '192.168.1.117',
    port: '1433',
    username: 'sa',
    password: '1',
  },{
  。。}
  但是启动后就会连mysql 127.0.0.1 3306 等于datasources里的配置没起任何作用。
  
请教! 
阅读 9.8k
2 个回答
  config.sequelize = {
    datasources: [
      {
        delegate: 'model', // load all models to app.model and ctx.model
        baseDir: 'model', // load models from `app/model/*.js`
        dialect: 'mysql',
        database: process.env.EGG_MYSQL_DATABASE || 'seq_test_staging',
        host: process.env.EGG_MYSQL_HOST || '127.0.0.1',
        port: process.env.EGG_MYSQL_PORT || '3306',
        username: process.env.EGG_MYSQL_USERNAME,
        password: process.env.EGG_MYSQL_PASSWORD,
        operatorsAliases: Op,
        pool: {
          max: 20,
          min: 0,
          idle: 10000,
        },
     },
      {
        delegate: 'testModel', // load all models to app.adminModel and ctx.adminModel
        baseDir: 'test_model', // load models from `app/admin_model/*.js`
        dialect: 'mysql',
        database: process.env.EGG_MYSQL_DATABASE || 'test',
        host: process.env.EGG_MYSQL_HOST || '127.0.0.1',
        port: process.env.EGG_MYSQL_PORT || '3306',
        username: process.env.EGG_MYSQL_USERNAME,
        password: process.env.EGG_MYSQL_PASSWORD,
        operatorsAliases: Op,
        pool: {
          max: 20,
          min: 0,
          idle: 10000,
        },
     },
    ],
  };
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题