0

我需要编写一个脚本,将数据库模式导入 PostgreSQL 数据库,该数据库将作为更大构建脚本的一部分运行。我以 root 身份运行以下脚本。

#Change ownership of copied Schema
chown postgres:postgres /var/lib/pgsql/ddl.sql

su - postgres

cd ~

psql -Ubuild test < /var/lib/pgsql/ddl.sql

exit

我遇到的问题是,要真正允许导入工作,我必须在脚本完成执行后键入 exit。我尝试在脚本末尾添加一个额外的出口,但似乎没有什么不同。

任何想法都会很棒

4

1 回答 1

1

也许尝试用 & 将它放在背景上:

#!/bin/bash
chown postgres:postgres /var/lib/pgsql/ddl.sql
su - postgres
cd ~
psql -Ubuild test < /var/lib/pgsql/ddl.sql &

确保在脚本中运行它可能是为了防止作业控制。

如果它在过程中暂停尝试添加更多配置:

set +o monitor
psql -Ubuild test < /var/lib/pgsql/ddl.sql &
disown

当您已经指定了不同的用户时,您确定还需su要这样做吗?postgres-Ubuild

于 2013-08-14T12:44:15.587 回答