I want to install a postgresql database on a remote linux server. In order to create the database on the remote server, I wrote a script in a python that executes the commands on the server. I am running the commands in sequential order in like this:
cmd = "wget http://yum.pgrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm"
execute cmd
cmd = "rpm -Uvh http://yum.pgrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm"
execute cmd
cmd = "yum install postgresql postgresql-server"
execute cmd
...and so on.
Everthing works fine utill the installation of postgres and starting the database. The problem arises when I want to create a database in postgreql. I found that I have to switch to the 'postgres' user and run psql
in order to execute any database related commands. For example:
# su postgres
# psql
# create database test;
...but since I am passing all of the commnads sequentially through the remote python code (as shown in the first example), it seems quite impossible to run these three commands together (su postgres
, and psql
and create
) from the client. Is there any way to run all three commands together?
I run following command:
# su postgres && psql && create database test;
...but only the first comamnd (su postgres
) is executed.