Guardians of the Postgres, The Search for Postgres, The Never Ending Postgres Part 1
Captains log… @$&%. What does a title like the even mean? How can this live up to those expectations?
I have been exploring the Postgres universe at the edges of the known reality for someone from FrontEnd. FrontEnd is a beautiful but dangerous world that feeds on bootcamp graduates.
ProTip: Postgres needs to be running before you can use it… maybe not a pro tip. What’s the opposite of a pro tip?
Starting postgres can happen in many different ways. I personally use
pgstart in my terminal. I wrote a bash alias a while back to start the postgres for ruby back end for a project I work on. You can add these to your
.bash_profile then be able to forget about everything but
# .bash_profile alias pgstart="pg_ctl -D /usr/local/var/postgres start" alias pgstop="pg_ctl -D /usr/local/var/postgres stop"
Some how I can just write commands in my terminal. I have no clue how. It’s not
psql , it’s something else. It makes it really hard to search for info on this thing when I don’t know what it is…. Apparently vocab is important. I think I will need to perform a recon mission to the surface of this strange world.
I encountered a native and was told that these commands I can run straight from the terminal are
postgresql. I think that is a one of this planet’s moons or something. I asked more questions and was told that
postgres == postgresql. They must not know that I am a JS developer. But apparently the syntax used here is different than on the Front End. The native gave me a list of commands I can use to communicate with this moon
ls /usr/local/Cellar/postgresql/12.2/bin/ clusterdb dropdb initdb pg_basebackup pg_controldata pg_dumpall pg_recvlogical pg_rewind pg_test_timing pgbench psql vacuumlo createdb dropuser oid2name pg_checksums pg_ctl pg_isready pg_resetwal pg_standby pg_upgrade postgres reindexdb createuser ecpg pg_archivecleanup pg_config pg_dump pg_receivewal pg_restore pg_test_fsync pg_waldump postmaster vacuumdb
Another postgres local who also is fluent in this planets foreign tung just Slacked by me. Big mistake for him. After hours of interrogation, he explained that these commands are "shortcuts" made available via binaries giving access to do
SQL-ish stuff without writing SQL commands. This is making more sense now. Before this, I just observed the ritual but did not know what was going on. This seems easier so we will start here.
Server started and then
- Create DB
- Delete DB
Questions I have:
Whats the difference between createdb and initdb?
- createdb creates a databases in a server that is running and has a directory set to hold all the binary logs to hold the real data in the disk
- initdb initializes the directory in which a server will be store all the binary logs to hold the real data in the disk
- in a normal installation we can say that you run initdb once in the life of the server
- How do I see all of the databases on this strange world? To be continued…