golang-database-patterns

Provide Go database integration examples using database/sql, sqlx, and pgx.

68|19|Updated Nov 21, 2025
One-click install
npx skills add https://github.com/bobmatnyc/claude-mpm-skills --skill golang-database-patterns-bobmatnyc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golang-database-patterns
Source: https://github.com/bobmatnyc/claude-mpm-skills/tree/main/toolchains/golang/data
Command: npx skills add https://github.com/bobmatnyc/claude-mpm-skills --skill golang-database-patterns-bobmatnyc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires github.com/jmoiron/sqlx, github.com/jackc/pgx/v5, github.com/golang-migrate/migrate/v4, github.com/DATA-DOG/go-sqlmock, and includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill provides comprehensive guidance and code examples for effectively interacting with SQL databases in Go, covering everything from basic queries to advanced patterns like the repository pattern and transaction management.

Core Features & Use Cases

  • Database Libraries: Explores database/sql, sqlx, and pgx for different needs.
  • Repository Pattern: Demonstrates building testable, interface-based data access layers.
  • Migrations: Covers schema versioning using golang-migrate.
  • Transaction Handling: Details safe and robust transaction management, including retry logic.
  • Use Case: When building a new Go web service that requires robust user authentication and data storage, this Skill will guide you in setting up the database connection, defining user models, implementing CRUD operations, and managing schema changes.

Quick Start

Use the golang-database-patterns skill to set up a connection pool using pgx for a PostgreSQL database.

Frequently Asked Questions about golang-database-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement the repository pattern in Go for database access?

The repository pattern in Go is implemented using interface-based data access layers to abstract database operations. This Skill provides code examples for building testable data access layers using standard library database/sql, sqlx, and pgx drivers.

What's the best way to handle database transactions in Go with retry logic?

Database transaction handling in Go requires safe rollback and commit management. This Skill details robust transaction patterns with retry logic, demonstrating how to manage concurrent operations safely using pgx and sqlx connections.

How do I run database migrations in Golang using golang-migrate?

Database migrations in Golang using golang-migrate involve versioning your schema with sequential SQL files. This Skill covers schema versioning practices and provides scripts to apply migrations within a Go application workflow.

Should I use pgx or sqlx for PostgreSQL integration in Go?

Choosing pgx vs sqlx for PostgreSQL integration depends on your driver needs; pgx offers protocol-level PostgreSQL features while sqlx wraps the standard database/sql interface. This Skill explores both libraries for different integration requirements.

How do you handle NULL values safely when querying SQL databases in Go?

Handling NULL values in Go SQL queries requires specific scanner types or pointer fields to avoid runtime panics. This Skill addresses NULL handling techniques and common anti-patterns like N+1 queries and SQL injection risks.