Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterMigration ¶
func RegisterMigration(m Migration)
func RegisteredIDs ¶
func RegisteredIDs() []string
func WithTx ¶
WithTx runs fn inside a database transaction obtained from the connection pool. The transaction is committed when fn returns nil; otherwise it is rolled back. A panic inside fn is propagated after a best-effort rollback so the caller's defer chain stays intact.
Repositories use WithTx to compose multiple writes into a single atomic unit:
err := database.WithTx(ctx, conn, func(tx pgx.Tx) error {
if _, err := tx.Exec(ctx, "INSERT ..."); err != nil { return err }
return tx.QueryRow(ctx, "...").Scan(&id)
})
Types ¶
type Connection ¶
func NewConnection ¶
func NewConnection(ctx context.Context, cfg *config.DatabaseConfig) (*Connection, error)
func NewConnectionProvider ¶
func NewConnectionProvider(ctx context.Context, cfg *config.DatabaseConfig) (*Connection, error)
func (*Connection) Close ¶
func (c *Connection) Close()
func (*Connection) HealthCheck ¶
func (c *Connection) HealthCheck(ctx context.Context) error
type Migration ¶
type Migration struct {
ID string
Name string
Up func(ctx context.Context, tx pgx.Tx) error
Down func(ctx context.Context, tx pgx.Tx) error
}
Migration is a versioned schema change. ID must start with a Unix timestamp prefix.
type MigrationsManager ¶
type MigrationsManager struct {
// contains filtered or unexported fields
}
MigrationsManager applies registered migrations against a pgx pool.
func NewMigrationsManager ¶
func NewMigrationsManager(pool *pgxpool.Pool) *MigrationsManager
func NewMigrationsManagerProvider ¶
func NewMigrationsManagerProvider(conn *Connection) *MigrationsManager
func (*MigrationsManager) ApplyPending ¶
func (m *MigrationsManager) ApplyPending(ctx context.Context) error
Directories
¶
| Path | Synopsis |
|---|---|
|
Package migrations registers in-code schema migrations via init().
|
Package migrations registers in-code schema migrations via init(). |
Click to show internal directories.
Click to hide internal directories.