自动化在 shell 中安装和创建 PostgreSQL 数据库

5
我正在尝试通过自动化的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 

我做错了什么,有没有办法改进这个脚本?

“--owner deploy” 应该改为 “--owner=deploy” 吧? - bma
1个回答

4
根据apt-get的提示,你的部署平台是类似于Ubuntu的操作系统。
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

一般来说,你走在了正确的道路上。


我在命令行中使用以下命令更加顺利:sudo -u postgres psql -c "create database spider --owner deploy" - Fredrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接