cmd/go-project-template | ||
config | ||
db | ||
web | ||
.gitignore | ||
finish-template-setup.sh | ||
go-project-template.sample.json | ||
go.mod | ||
go.sum | ||
LICENSE | ||
README.md | ||
renovate.json | ||
sqlc.yaml |
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 run ./finish-template-setup.sh
and update 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.