【发布时间】:2013-08-24 10:40:00
【问题描述】:
这是我用于创建数据库的 shell 命令。它作为部署脚本的一部分运行,无需人工干预即可自动创建两个数据库。
# POSTGRES
apt-get install -y postgresql
echo "CREATE ROLE deploy LOGIN ENCRYPTED PASSWORD '$APP_DB_PASS';" | sudo -u postgres psql
su postgres -c "createdb db1 --owner deploy"
su postgres -c "createdb db2 --owner deploy"
service postgresql reload
在这段代码中,有人可以解释一下我如何在这个阶段将 SQL 文件导入到 postgresql 中。
我相信它是这样的,但我还没有去工作:
psql --username=postgres < /etc/schema.sql
【问题讨论】:
-
以非特权操作系统用户身份启动
psql -U postgres假定它可以作为数据库超级用户登录,这不是默认的安全策略。为什么使用sudo/su postgres然后不使用不一致? -
Daniel,因为我使用了来自不同地方的代码,我不完全确定自己在做什么。
标签: sql postgresql import schema debian