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