filesystem

package
v0.0.0-...-114cbd0 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DirectionUp = iota
	DirectionDown
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	DbName      string `json:"db_name"`
	Path        string `json:"path"`
	DbURL       string `json:"db_url"`
	Credentials string `json:"credentials"`
	Port        int    `json:"port"`
	SSL         string `json:"ssl_mode"`
	NoColor     bool   `json:"no_color"`
}

Config JSON type for storing database configuration

func (*Config) GetConnectionString

func (config *Config) GetConnectionString() (string, error)

GetConnectionString returns string for connecting on DB

type Direction

type Direction int

func (Direction) String

func (d Direction) String() string

type Filesystem

type Filesystem interface {
	StoreConfig(config Config) error
	LoadConfig() (Config, error)
	CreateMigrationFile(string, string) error
	ReadMigrationContent(MigrationFile, Direction, Config) (string, error)
	GetFileTimestamps(time.Time, time.Time) (MigrationFileList, error)
	Squash(MigrationFileList) error
}

type ImplFilesystem

type ImplFilesystem struct {
	Fs             afero.Fs
	GetNow         func() time.Time
	ConfigDir      string
	ExternalConfig *Config
}

func (*ImplFilesystem) CreateMigrationFile

func (fs *ImplFilesystem) CreateMigrationFile(name string, location string) error

CreateMigrationFile - creates a new file in path directory

func (*ImplFilesystem) GetFileTimestamps

func (fs *ImplFilesystem) GetFileTimestamps(from time.Time, to time.Time) (MigrationFileList, error)

GetFileTimestamps - gets the list of migrations that are between two arguments. Returned list does not include file that has exactly same timestamp as `from` arg. Returned list includes file that has exactly same timestamp as `to` arg.

func (*ImplFilesystem) LoadConfig

func (fs *ImplFilesystem) LoadConfig() (Config, error)

LoadConfig - reads previously stored config file from current dir

func (*ImplFilesystem) ReadMigrationContent

func (fs *ImplFilesystem) ReadMigrationContent(file MigrationFile, direction Direction, config Config) (string, error)

ReadMigrationContent for specified migration file reads content as a string

func (*ImplFilesystem) Squash

func (fs *ImplFilesystem) Squash(files MigrationFileList) (err error)

Squash squashes files from given list into one up migration and one down migration

func (*ImplFilesystem) StoreConfig

func (fs *ImplFilesystem) StoreConfig(config Config) error

StoreConfig - saves configuration in json file

type MigrationFile

type MigrationFile struct {
	Timestamp int64
	Down      string
	Up        string
}

func (MigrationFile) GetFileName

func (mf MigrationFile) GetFileName(config Config, direction Direction) string

GetFileName - returns full path to migration file

type MigrationFileList

type MigrationFileList []MigrationFile

func (MigrationFileList) Len

func (m MigrationFileList) Len() int

func (MigrationFileList) Less

func (m MigrationFileList) Less(i, j int) bool

func (MigrationFileList) Swap

func (m MigrationFileList) Swap(i, j int)

type TimeGetter

type TimeGetter func() time.Time

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL