问题描述
我正在尝试在npm脚本中引用.sql文件。
package.json
"scripts": {
...,"rls:on": "npm run typeorm query $(cat src/policies/enable-rls.sql)"
}
enable-rls.sql
ALTER TABLE folder ENABLE ROW LEVEL SECURITY;
在运行上面的命令时,出现以下错误:
QueryFailedError: unterminated quoted string at or near "ALTER"
由于sql从作为单个单词检索的文件中读取:
"ALTER" "TABLE" "folder" "ENABLE" "ROW" "LEVEL" "SECURITY;"
代替全文:
"ALTER TABLE folder ENABLE ROW LEVEL SECURITY;"
将qsl读取为全文的命令是什么?
解决方法
用JSON转义的双引号$(...)
中的command substitution部分,即\"...\"
例如,将您的npm脚本更改为以下内容:
"scripts": {
...,"rls:on": "npm run typeorm query \"$(cat src/policies/enable-rls.sql)\""
^^ ^^
}