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

J.Z*_*Zil 5 sql linux postgresql shell debian

我正在尝试通过自动 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
Run Code Online (Sandbox Code Playgroud)

任何人都可以看看我是否以正确的方式解决这个问题。此外,当我尝试通过运行以下命令查看它是否有效时,出现错误:

root:~# psql -l                                                                               
psql: FATAL:  role "root" does not exist 
Run Code Online (Sandbox Code Playgroud)

我哪里出错了,有什么办法可以改进这个脚本?

Kir*_*bal 4

从 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
Run Code Online (Sandbox Code Playgroud)

然后您应该能够通过在命令行上指定用户来登录:

psql -U root spider
Run Code Online (Sandbox Code Playgroud)

或者

psql -U deploy spider
Run Code Online (Sandbox Code Playgroud)

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