Installation
PostgreSQL
When working with MEDUSA for ecommerse, you will need to use postgresql. Here will will look into how to install and confugure postgresql before installing MEDUSA bbackend, so that the MEDUSA installation goes smoothly.
For installing postgresql in ubuntu first add the postgresql repository
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Retrieve and adds the PostgreSQL repository's GPG (GNU Privacy Guard) key to your system
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Install Postgresql
sudo apt-get update
sudo apt-get -y install postgresql
Check installation using version command
psql -V
Access PostgreSQL
To access postgresql type "psql" but this will generate error
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "username" does not exist
As the default configuration of Postgres is, a user called postgres is made on and the user postgres has full superadmin access to entire PostgreSQL instance running on your OS.
The DB console cn be accesed using the below command, by passing the username along with 'psql'
sudo -u postgres psql
Incase the above steps doesnot work Create as password for postgres user
sudo passwd postgres
Enter the new password and switch to this user acount, by using this newly created password
su postgres
Now you can use the command 'psql' to enter into DB consile. To list all the database and owners use the '\l' command on the DB console. Command '\q' is used to exit the terminal
Configure PosrgreSQL for Medusa
When installing MEDUSA backend, it asks for creating psotgresql DB. if the default user is not regitered with postgres DB then the process of DB creation will fail.
To prevent this we create a new user (medusa_adim) in postgresql DB with a known password and will provide these credentials while instaling MEDUSA backen. This will ensure that necesary DB is created and linked to MEDUSA.
In the DB console type
CREATE USER youruser WITH ENCRYPTED PASSWORD 'yourpass';
Now provide the newly created user with Database creation rights
ALTER USER youruser WITH CREATEDB;
This should be enough for MEDUSA installation to go through one you provide youruser and yourpass
Database Access Issues
With postgresql 15 there have been recent changes to improve the security of POSTGRES depending on HOW and WHO created the database. The long and short is now you may NEED to specify that you are also the OWNER of the database in addition to having the permissions.
ALTER DATABASE my_database OWNER TO my_database_user;
Other Actions in PostgreSQL
All the commands are self explanator
CREATE DATABASE yourdbname;
ALTER USER username WITH CREATEDB;
GRANT ALL PRIVILEGES ON DATABASE yourdbname TO youruser;
DROP USER youruser;
DROP DATABASE yourdbname WITH (FORCE);