从谷歌云功能运行 npm 命令

时间:2021-02-13 00:47:26

标签: sequelize.js

我目前有一个使用云函数作为 rest API 的 react js 网站。这些函数使用私有 IP 连接到 SQL 实例。

对于 SQL orm,我使用 Sequelize,到目前为止还不错,但是,我进行了迁移,但无法让它在 SQL 实例上运行。有没有办法通过 npm 命令运行迁移?我尝试使用 Umzug,但它看起来不起作用,因为该功能不断超时。

1 个答案:

答案 0 :(得分:0)

尝试了不同的选项后,我发现解决方案比我想象的要简单得多。执行 npm 命令并解决我的问题的方法:

const { exec } = require('child_process');

module.exports = async (req, res) => {

try {
    await new Promise((resolve, reject) => {
        const migrate = exec(
            'npx sequelize-cli db:migrate',
            err => (err ? reject(err) : resolve())
        );

        // Forward stdout+stderr to this process
        migrate.stdout.pipe(process.stdout);
        migrate.stderr.pipe(process.stderr);
    });
} catch (e) {
    res.code(500);
    res.send(JSON.stringify(e));
}
};