sequelize.js - 从谷歌云功能运行 npm 命令
问题描述
我目前有一个使用云函数作为休息 API 的反应 js 网站。这些函数使用私有 IP 连接到 SQL 实例。
对于 SQL orm,我使用 Sequelize,到目前为止效果很好,但是,我进行了迁移,但无法使其在 SQL 实例上运行。有没有办法通过 npm 命令运行迁移?我尝试使用 Umzug,但它看起来不像工作,因为该功能不断超时。
解决方案
在尝试了不同的选项后,我发现解决方案比我想象的要简单得多。执行 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));
}
};
推荐阅读
- swift - 如何从 Swift 5 上的 firebase 实时数据库中检索子数据
- android - SecurityException:不支持的路径 /storage/emulated/999/Download/somefile.pdf
- c# - MVC HttpPostedFilebase 总是返回 null
- mysql - 为什么 SQL 内连接在 laravel 中返回空结果?
- sql-server - 如何在多个表上创建视图,我想通过触发器插入数据
- python - 如何在使用python pandas连接一组csv文件时删除重复的标题(多行)
- azure-devops - 如何在 Azure DevOps 中授予对此资源的读取权限
- python - 有没有办法将我已经为我的脚本作为 cron 作业的参数传递的用户输入?
- numpy - 如何为时间序列预测模型 (LSTM) 构建 tf.data 管道
- python - 我可以在不先使用 gspread 获取当前值的情况下更新单元格吗