如何在sequelize中动态创建的数据库中创建表?

时间:2019-07-24 13:31:46

标签: mysql node.js express sequelize.js

我正在使用nodejs编写rest api,表达并序列化orm。我正在创建的api是基于SAAS平台的android应用程序。因此,我需要为我的应用程序的每个用户创建单独的数据库。将存在一个主数据库,该数据库将用于在登录时识别每个用户的数据库凭据。默认情况下,在每个api调用中,在需要连接/创建用户特定数据库的每条路由中,该主数据库都将连接。桌子。

/ *这是我的db.js文件,用于使用sequelize进行主数据库连接。 * /

func p [] @ acc = func p acc

/ *这是Demo.js模型* /

require('dotenv').config();
const sequelize = require('sequelize');

module.exports = new sequelize('master_db', process.env.DB_USER, process.env.DB_PASS, {
    host: process.env.DB_HOST,
    dialect: 'mysql',
    operatorAliases: false,

    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    }
});

/ *路径文件夹中的demo_route.js文件* /

const Sequelize = require('sequelize');
const db = require('../../db');

const Demo_table = db.define('demo_table', {
    // attributes
    demo_id: {
        type: Sequelize.INTEGER,
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
    },
    demo_name: {
        type: Sequelize.INTEGER,
        allowNull: false,
    }
}, {
    // options
    timestamps: false,
    freezeTableName: true,
});

module.exports = Demo_table;

/ *这是控制器文件demo_member.js * /

"use strict";
require('dotenv').config();
const express = require('express');
const router = express.Router();
const checkAuth = require('../middleware/auth');

//load controllers
const DemoController = require('../controllers/demo_member');

router.post('/demo_activity', checkAuth, DemoController.demo_activity);

module.exports = router;

我期望解决方案能够尽早满足我的要求。我可以在其中动态创建数据库,然后创建表并与其连接以执行CRUD。

0 个答案:

没有答案