dbmfs

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2026 License: MPL-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package dbmfs implements dbm.Source from fs.FS.

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	// ErrParsingFailed reports that migration files parsing failed.
	ErrParsingFailed = errors.New("migration files parsing failed")
	// ErrFsEntryIsDir reports that migration files filesystem contains a sub-directory.
	ErrFsEntryIsDir = errors.New("expected file but found directory")
	// ErrMigrationDirectionIsInvalid reports that migration direction is invalid.
	ErrMigrationDirectionIsInvalid = errors.New("migration direction is invalid")
)

Functions

This section is empty.

Types

type FSSource

type FSSource struct {
	fs.FS
}

FSSource implements dbm.Source using an fs.FS.

func NewSource

func NewSource(fsys fs.FS) *FSSource

NewSource creates a new migration source from fsys.

Example
package main

import (
	"embed"

	"codeberg.org/kema/kmicro/pkg/dbmigration/source/dbmfs"
)

//go:embed *.go
var fsys embed.FS

func main() {
	s := dbmfs.NewSource(fsys)

	_ = s
}

func (*FSSource) GetMigrations

func (s *FSSource) GetMigrations() ([]dbm.Migration, []dbm.Migration, error)

GetMigrations reads the filesystem, parses migration files, loads their content, and returns them separated into sorted up and down slices. Migration file names must use the "YYYYMMDDHHMMSS_<description>.<up|down>.sql" format.