No description
Find a file
2024-07-24 15:06:07 -07:00
cmd/go-project-template Initial commit 2024-05-05 15:10:32 -07:00
config Provide sample config file, an HTML template index page and a README 2024-07-24 15:06:07 -07:00
db Initial commit 2024-05-05 15:10:32 -07:00
httpserver Provide sample config file, an HTML template index page and a README 2024-07-24 15:06:07 -07:00
.gitignore Initial commit 2024-05-05 15:10:32 -07:00
go-project-template.sample.json Provide sample config file, an HTML template index page and a README 2024-07-24 15:06:07 -07:00
go.mod Initial commit 2024-05-05 15:10:32 -07:00
go.sum Initial commit 2024-05-05 15:10:32 -07:00
LICENSE Initial commit 2024-05-05 15:10:32 -07:00
README.md Provide sample config file, an HTML template index page and a README 2024-07-24 15:06:07 -07:00
sqlc.yaml Initial commit 2024-05-05 15:10:32 -07:00

go-project-template

This is a template for go projects. It provides a postgres database connection and a webserver.

Template Usage

This template is intended for use with gonew, but can also be manually copied and the package name updated.

After you run gonew or update the package name manually, you will also want to:

  • search for the string go-project-template and replace it with the name of your project.
  • Rename the sample config file in the root from go-project-template.sample.json
  • You might want to put a human-readable project name in the <title> element in httpserver/templates/base.html
  • Rewrite this README

Project Usage

This project requires a postgres server. For development, it is usually easiest to create a temporary database in a container:

docker run --rm --name postgresql -e POSTGRES_PASSWORD=password -p 5432:5432 library/postgres

Then make a copy of the sample config file:

cp go-project-template.sample.json go-project-template.json

The database schema and migrations are defined in db/migrations/. Migrations are applied by goose when the program starts. Queries are written in database/queries/, which gets read by sqlc to generate much of the go code in db/. If you update a query, run sqlc generate to update the generated go files.