运行脚本以通过Bash将数据库模式导入PostgreSQL

时间:2013-08-14 12:34:14

标签: sql database bash postgresql scripting

我需要编写一个脚本,将DB模式导入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。我已经尝试在脚本的末尾添加一个额外的退出,但它似乎没有什么区别。

任何想法都会很棒

1 个答案:

答案 0 :(得分:1)

也许尝试用&amp;:

将它放在背景上
#!/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吗?