我正在尝试通过自动 shell 脚本在 postgresql 下创建两个名为 spider 和 geo 的数据库。这是到目前为止的代码。
apt-get install -y postgresql
echo "CREATE ROLE deploy LOGIN ENCRYPTED PASSWORD '$APP_DB_PASS';" | sudo -u postgres psql
su postgres -c "createdb spider --owner deploy"
su postgres -c "createdb geo --owner deploy"
/etc/init.d/postgresql reload
任何人都可以看看我是否以正确的方式处理这个问题。此外,当我尝试通过运行以下命令查看它是否有效时,我收到错误消息:
root:~# psql -l
psql: FATAL: role "root" does not exist
我哪里出错了,有什么方法可以改进这个脚本吗?
最佳答案
通过 apt-get 判断,您的部署平台是 Ubuntu-(ish)。
apt-get install -y postgresql
echo "CREATE ROLE deploy LOGIN ENCRYPTED PASSWORD '$APP_DB_PASS';" | sudo -u postgres psql
su postgres -c "createdb spider --owner deploy"
su postgres -c "createdb geo --owner deploy"
service postgresql reload
那么你应该可以通过在命令行指定一个用户来登录了:
psql -U root spider
或
psql -U deploy spider
一般来说,您的方向是正确的。
关于sql - 在 shell 中自动安装和创建 postgresql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345107/