Deploy Database For Hero Microservice
Deploy PostgreSQL database from Developer Catalog
Make sure that you're in Developer perspective, project userX-super-heroes is selected, and in the Topology page. Then right click in view area and select Database menu.
PostgreSQL database deployment Select PostgreSQL database.
PostgreSQL database deployment Click Instantiate Template button.
PostgreSQL database deployment Enter following inputs (leave it as is for other fields) then click Create button.
Database Service Name:
heroes-db
PostgreSQL Connection Username:
superman
PostgreSQL Connection Password:
superman
PostgreSQL Database Name:
heroes_database
PostgreSQL database deployment Wait for awhile, the heroes-db pod should be up and running.
PostgreSQL database deployment
Initial data to database
We need to load some data into the database we've just deployed. How to do that? the answer is using PostgreSQL client to execute a SQL script. Let's do it!
Click on the Web Terminal icon located at top right corner of web console. Then select userX-super-heroes and click Start button.
Web Terminal Wait for a few moment, you should see a terminal shows up.
Web Terminal Use
curl
command to download SQL script.curl https://raw.githubusercontent.com/rhthsa/developer-advocacy-2022/main/manifest/super-heroes/heroes-db-init.sql -o heroes-db-init.sql
Sample output:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 86517 100 86517 0 0 180k 0 --:--:-- --:--:-- --:--:-- 180k
Use
psql
(PostgreSQL client) to connect to theheroes-db
PostgreSQL server. The password issuperman
.psql postgresql://heroes-db:5432/heroes_database?user=superman
Sample output:
bash-4.4 ~ $ psql postgresql://heroes-db:5432/heroes_database?user=superman Password: psql (10.21) Type "help" for help. heroes_database=>
Execute the SQL script with this command:
\i heroes-db-init.sql
Sample output:
heroes_database=> \i heroes-db-init.sql DROP TABLE DROP SEQUENCE CREATE SEQUENCE CREATE TABLE INSERT 0 1 INSERT 0 1 .... .... .... heroes_database=>
Use
\dt
command to check if a new table gets created.\dt
Sample output:
heroes_database=> \dt List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | hero | table | superman (1 row)
Query number of rows in the table.
select count(*) from hero;
Sample output:
heroes_database=> select count(*) from hero; count ------- 100 (1 row)
Use
\q
command to disconnect from PostgreSQL server.\q
Add label to workload
Run following command in Web Terminal to add a few labels to heroes-db workload.
oc label dc heroes-db \ app=heroes-db \ application=heroes-service \ system=quarkus-super-heroes \ app.kubernetes.io/part-of=heroes-service \ app.openshift.io/runtime=postgresql
The heroes-db entity in UI will change immediately. Click on it then go to Details tab. You should be able to see the labels were added.
Web Terminal You can minimize or close the Web Terminal window when not use it.
Web Terminal
What have you learnt?
How to deploy PostgreSQL database service from Developer Catalog.
How to use Web Terminal via OpenShift web console to interact with application deployed on cluster (in this case, heroes-db PostgreSQL) without having to install terminal applications i.e. PuTTY, Cmder, Xshell, SecureCRT etc. on your computer.
How to use
curl
command to download file from website.How to use
psql
(PostgreSQL client) command to connect to PostgreSQL database server and a few tasks e.g. run SQL script, list tables, and run SQL statement.How to add labels to workload using
oc
- OpenShift command line tool.
Last updated