eggjs sequelize操作多個數據,表名不加s,不默認加創建和修改時間字段


操作多個數據庫:

// 多個數據庫操作,model名稱不同
  // model目前項目的庫,model2是之前的招聘庫,model3是cd公共庫
  config.sequelize = {
    datasources: [
      {
        dialect: 'mysql',
        host: '127.0.0.1',
        port: 3306,
        database: 'talent_management',
        username: "root",
        password: "root",
        charset: "utf8",

        timezone: "+08:00",
        dialectOptions: {
          dateStrings: true,
          typeCast(field, next) {
            if (field.type === "DATETIME") {
              // 返回正確得時間
              return field.string();
            }
            return next();
          }
        }
      },
      {
        dialect: 'mysql',
        // 通過egg的app或者ctx訪問這個模型的字段
        // 默認是model,也就是app.model.xx
        // 這里是通過app.Model2來使用db1數據庫的模型
        delegate: 'model2',
        // 指定模型文件在哪里,默認是model
        // 如果是在子目錄如model/xx,要保證model沒被單獨使用
        baseDir: 'model2',
        dialectOptions: {
          charset: 'utf8mb4',
        },
        define: {
          freezeTableName: true,
          createdAt: false,
          updatedAt: false
        },
        database: '***',
        host: '***',
        port: '3306',
        username: "root",
        password: "***",
        // host: '***',
        // username: "***",
        // password: "***",
      
        timezone: "+08:00",
        dialectOptions: {
          dateStrings: true,
          typeCast(field, next) {
            if (field.type === "DATETIME") {
              // 返回正確得時間
              return field.string();
            }
            return next();
          }
        }
      },
      {
        dialect: 'mysql',
        // 通過egg的app或者ctx訪問這個模型的字段
        // 默認是model,也就是app.model.xx
        // 這里是通過app.Model2來使用db1數據庫的模型
        delegate: 'model3',
        // 指定模型文件在哪里,默認是model
        // 如果是在子目錄如model/xx,要保證model沒被單獨使用
        baseDir: 'model3',
        dialectOptions: {
          charset: 'utf8mb4',
        },
        define: {
          freezeTableName: true,
          createdAt: false,
          updatedAt: false
        },
        database: '***',
        host: '192.168.0.10',
        port: '3306',
        username: "root",
        password: "***",
        // host: '***',
        // username: "***",
        // password: "**",
      
        timezone: "+08:00",
        dialectOptions: {
          dateStrings: true,
          typeCast(field, next) {
            if (field.type === "DATETIME") {
              // 返回正確得時間
              return field.string();
            }
            return next();
          }
        }
      },
    ]
  }

創建:

 

 

 

 操作庫:

await ctx. model2.Category.findAndCountAll()

 

表名創建不加s,不默認加創建和修改時間字段:

define: {
    freezeTableName: true, createdAt: false, updatedAt: false },

 

參考博客:

https://blog.csdn.net/kyyius/article/details/116064987

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM