例如,我有一个文件customers.json,它是一个对象数组(严格形成),并且它非常简单(没有嵌套对象),这样(重要的是:它已经包含了ids):
[
{
"id": 23635,
"name": "Jerry Green",
"comment": "Imported from facebook."
},
{
"id": 23636,
"name": "John Wayne",
"comment": "Imported from facebook."
}
]
Run Code Online (Sandbox Code Playgroud)
我想将它们全部导入我的postgres db到表中customers.
我发现了一些相当困难的方法,当我将它作为json类型的列导入到像其中列出的对象imported_json命名的表和列data,然后使用sql获取这些值并将其插入到真实的表中.
但有没有一种简单的方法导入json到postgres没有触及sql?
我有一个脚本package.json:
{
"scripts": {
"start": "source run-nvm.sh && ..."
}
}
Run Code Online (Sandbox Code Playgroud)
但跑步source run-nvm.sh && ...与yarn start(或npm run start)不同。
为什么?它创建了一个子shell。所以我不能改变原始 shell 的环境,我不能export为它常量或操纵它的状态nvm(我不能改变父 shell 的节点版本)
我可以通过不创建子shell来执行yarn/npm脚本吗?(并使用当前的外壳)
或者
如何使用 npm 脚本获取 shell 脚本?
最终,您可能会尝试通过询问以下问题来改变话语:“为什么不只是source run-nvm.sh && yarn start”但我不想只添加一些自定义脚本和复杂性,我希望它在yarn start/上自动执行npm start(自动更改节点版本)
它当前有效(脚本更改节点的版本并运行应用程序)但由于它是一个子shell,它不保存 nvm 的状态。因此,yarn start它最初使用默认版本,然后更改版本,然后启动应用程序,因此它yarn start为版本更改命令添加了约 3-4 秒。虽然它不应该每次都设置版本,但应该只设置一次,第一次。