doc.go

 1// Package database defines a generic [Store] interface for goose to use when interacting with the
 2// database. It is meant to be generic and not tied to any specific database technology.
 3//
 4// At a high level, a [Store] is responsible for:
 5//   - Creating a version table
 6//   - Inserting and deleting a version
 7//   - Getting a specific version
 8//   - Listing all applied versions
 9//
10// Use the [NewStore] function to create a [Store] for one of the supported dialects.
11//
12// For more advanced use cases, it's possible to implement a custom [Store] for a database that
13// goose does not support.
14package database