Documentation
¶
Overview ¶
Package clpgmigrate implements the postgres migration logic.
Index ¶
- func GooseMigrated(migrateDir fs.FS, cnff ...func(*Config)) fx.Option
- func SetupTemplateDatabaseFromSnapshot(ctx context.Context, ...) error
- func SnapshotMigrated(sqlFile string) fx.Option
- func TeardownTemplateDatabase(ctx context.Context, bootstrapConnString, templateDatabaseName string) error
- func TemplateMigrated(templDBName TemplateDatabaseName) fx.Option
- func VersionMigrated(noChecksumValidate bool) fx.Option
- type Config
- type GooseMigrateDir
- type GooseMigrater
- type SnapshotMigrater
- type SnapshotPath
- type TemplateDatabaseName
- type TemplateMigrater
- type VersionMigrater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GooseMigrated ¶ added in v0.29.1
GooseMigrated configures the di for using snapshot migrations.
func SetupTemplateDatabaseFromSnapshot ¶ added in v0.39.0
func SetupTemplateDatabaseFromSnapshot( ctx context.Context, bootstrapConnString, templateDatabaseName, snapshotPath string, ) error
SetupTemplateDatabaseFromSnapshot can be called early to setup a template database.
func SnapshotMigrated ¶
SnapshotMigrated configures the di for using snapshot migrations.
func TeardownTemplateDatabase ¶ added in v0.39.0
func TeardownTemplateDatabase( ctx context.Context, bootstrapConnString, templateDatabaseName string, ) error
TeardownTemplateDatabase can called late in the test suite to drop the template database.
func TemplateMigrated ¶ added in v0.39.0
func TemplateMigrated(templDBName TemplateDatabaseName) fx.Option
TemplateMigrated configures the di for using template based migrations.
func VersionMigrated ¶
VersionMigrated configures the di for testing with a temporary database and auto-migration of a directory.
Types ¶
type Config ¶
type Config struct {
// TemporaryDatabase can be set to cause the logic to create a random database name and initialize
// it when running auto-migration. This is mostly useful for automated tests
TemporaryDatabase bool `env:"TEMPORARY_DATABASE" envDefault:"false"`
// AutoMigration can be set to true to cause the logic to automatically run migrations when started. This
// is mostly useful for automated tests.
AutoMigration bool `env:"AUTO_MIGRATION" envDefault:"false"`
// the sql being generated for creating the temporary database
CreateDatabaseFormat string `env:"CREATE_DATABASE_FORMAT" envDefault:"CREATE DATABASE %s"`
// the sql being generated for dropping the temporary database
DropDatabaseFormat string `env:"DROP_DATABASE_FORMAT" envDefault:"DROP DATABASE %s (force)"`
// configures how long migrations that run in the fx init phase
InitMigrateTimeout time.Duration `env:"INIT_MIGRATE_TIMEOUT" envDefault:"10s"`
}
Config configures the packaged logic.
type GooseMigrateDir ¶ added in v0.29.1
GooseMigrateDir types a filesytem that holds the full path to the goose migrations.
type GooseMigrater ¶ added in v0.29.1
type GooseMigrater struct {
// contains filtered or unexported fields
}
GooseMigrater uses a goose strategy to migrate.
func NewGooseMigrater ¶ added in v0.29.1
func NewGooseMigrater( cfg Config, logs *zap.Logger, rwcfg *pgxpool.Config, rocfg *pgxpool.Config, dir GooseMigrateDir, ) (*GooseMigrater, error)
NewGooseMigrater inits the migrater.
type SnapshotMigrater ¶
type SnapshotMigrater struct {
// contains filtered or unexported fields
}
SnapshotMigrater uses a snapshot strategy to migrate.
func NewSnaphotMigrater ¶
func NewSnaphotMigrater( cfg Config, logs *zap.Logger, rwcfg *pgxpool.Config, rocfg *pgxpool.Config, snapp SnapshotPath, ) (*SnapshotMigrater, error)
NewSnaphotMigrater inits the migrater.
type SnapshotPath ¶
type SnapshotPath string
SnapshotPath types a string to hold the full snapshot sql.
type TemplateDatabaseName ¶ added in v0.39.0
type TemplateDatabaseName string
TemplateDatabaseName holds the name of a template database.
type TemplateMigrater ¶ added in v0.39.0
type TemplateMigrater struct {
// contains filtered or unexported fields
}
TemplateMigrater uses a template database to migrate.
func NewTemplateMigrater ¶ added in v0.39.0
func NewTemplateMigrater( cfg Config, logs *zap.Logger, rwcfg *pgxpool.Config, tmpl TemplateDatabaseName, ) (mig *TemplateMigrater, err error)
NewTemplateMigrater inits the migrater.
type VersionMigrater ¶
type VersionMigrater struct {
// contains filtered or unexported fields
}
VersionMigrater allows programmatic migration of a database schema using versioned sql steps. Mostly used in testing and local development to provide fully isolated databases.
func NewVersionMigrater ¶
func NewVersionMigrater( cfg Config, logs *zap.Logger, rwcfg *pgxpool.Config, rocfg *pgxpool.Config, dir migrate.Dir, ) (*VersionMigrater, error)
NewVersionMigrater inits the migrater.