我有一个包含*.sql
个文件的文件夹。每个文件都是多行SQL命令,我需要在PostgreSQL上执行。
这是我的代码:
DATA_DIR=db
SCHEMA=$DATA_DIR/schema
echo ================ Parameters:
echo SCHEMA=$SCHEMA
with_postgresql () {
sudo docker exec postgresql sudo -u postgres psql -c
}
with_psql () {
{
while read LINE; do
echo "$LINE"
done
} | with_postgresql
}
echo ================ Creating tables.
while read LINE; do
echo Creating table: $LINE
cat $SCHEMA/TABLE/$LINE.sql
done < $SCHEMA/meta/table_order | with_psql
运行脚本时,我收到消息:
=================创建表。 / usr / lib / postgresql / 10 / bin / psql:选项需要一个参数-'c'
在with_postgresql()
键之后,psql
函数似乎没有将文件的内容传递给-c
命令。我该怎么办?