首页 > 解决方案 > 从谷歌云功能运行 npm 命令

问题描述

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

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

标签: sequelize.js

解决方案


在尝试了不同的选项后,我发现解决方案比我想象的要简单得多。执行 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));
}
};

推荐阅读