DEV Community

Cover image for CONNECT TO A POSTGRESQL DATABASE, CREATE TABLES, INSERT DATA, AND USE A FILE FROM A GITHUB PROJECT WITH GO
Thomas Südbröcker
Thomas Südbröcker

Posted on

CONNECT TO A POSTGRESQL DATABASE, CREATE TABLES, INSERT DATA, AND USE A FILE FROM A GITHUB PROJECT WITH GO

This blog post covers the topic connect to a PostgreSQL database, create tables, insert data and use a file from a GitHub project and do the implementation with GO. That blog post is also related to my last blog post called Connect to a PostgreSQL database using GO. You find the related code to my new blog post in that GitHub project.

The file to create the example tables and content is a part of the GitHub project called Multi-tenancy assets for IBM clients to build SaaS.

OBJECTIVE

Connect to a PostgresSQL database, create tables, insert data using a file from a GitHub project.

BASIC FLOW

  1. Connect to the database
  2. Get a file from a GitHub project with the SQL statements to create tables and insert data
  3. Execute the SQL statement
  4. Verify one value with a query

BASIC PROGRAMMING STEPS

Each step contains the link to the line in the source code inside the GitHub repository.

  1. Create HTTP request using the GitHub API
  2. Define HTTP header
  3. Create client
  4. Invoke HTTP request
  5. Verify the request status
  6. Get only body from response
  7. Convert body to JSON content
  8. Extract and decode file content from JSON
  9. Connect to a database
  10. Create a SQL statement from file content
  11. Verify the created tables with a query

UNDERSTAND THE GITHUB URL FORMAT

As I said before, we use an example file from a GitHub project called Multi-tenancy assets for IBM clients to build SaaS. So, we need to get a bit familiar with the GitHub public APIs.

  • Example url we use: https://api.github.com/repos/IBM/multi-tenancy/contents/installapp/postgres-config/create-populate-tenant-a.sql

Mapping to the used GitHub API endpoint: https://api.github.com/repos/$NAME/$REPO/contents/$FILENAME

These are the related values of the example GitHub API endpoint above:

  • GitHub API: https://api.github.com/repos/
  • Name: “IBM/”
  • Repo: “multi-tenancy”
  • GitHub API: /contents/
  • Filename: “installapp/postgres-config/create-populate-tenant-a.sql”

For more details visit the GitHub public APIs documentation.

SOME USEFUL RESOURCES:

RUN THE EXAMPLE APPLICATION

These are the steps you need to follow to run the example on your local machine.

Note: You need a running PostgresSQL database somewhere

STEP 1: GIT CLONE

git clone https://github.com/thomassuedbroecker/go-access-postgres-example.git 
cd go-access-postgres-example
Enter fullscreen mode Exit fullscreen mode

STEP 2: VERIFY THAT THE MOD FILE “GO.MOD”

cd gopostgressql 
ls
Enter fullscreen mode Exit fullscreen mode

STEP 3: SET THE ENVIRONMENT VARIABLE

export DATABASE_URL= "postgres://username:password@localhost:5432/database_name"
Enter fullscreen mode Exit fullscreen mode

Note: Don’t forget to insert your DATABASE_URL.

STEP 5: EXECUTE THE GO PROGRAM

go run .
Enter fullscreen mode Exit fullscreen mode

SUMMARY

We touched in that simple example different essentials and useful topics in GO programming I would say (for example: base64, access HTTP endpoints, handle JSON and so on) and that makes it worth to take a note 😉


I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

Source: www.suedbroecker.net

go, #postgressql, #github, #buildlabs4saas

Top comments (0)