Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChecksumContent ¶
ChecksumContent returns the SHA-256 hex digest of the given content string.
func WriteMigration ¶
WriteMigration creates a new migration file pair in the given directory. It returns the generated version string (timestamp in YYYYMMDDHHmmss format).
Types ¶
type LintResult ¶
LintResult reports a migration file whose content has changed after it was applied to the database.
type Migration ¶
Migration represents a single versioned migration with up and down SQL.
func ParseMigrationDir ¶
ParseMigrationDir reads a directory of migration files and returns them sorted by version. Files must follow the naming convention:
<version>_<name>.up.sql <version>_<name>.down.sql
If the directory does not exist, it returns nil with no error.
type MigrationState ¶
type MigrationState string
MigrationState indicates the lifecycle state of a migration.
const ( // StateApplied means the migration is in the directory and has been applied // with a matching checksum. StateApplied MigrationState = "applied" // StatePending means the migration is in the directory but has not been applied. StatePending MigrationState = "pending" // StateModified means the migration has been applied but the file content // no longer matches the stored checksum. StateModified MigrationState = "modified" // StateMissing means the migration was applied but the file no longer exists // in the migration directory. StateMissing MigrationState = "missing" )
type MigrationStatus ¶
type MigrationStatus struct {
Version string
Name string
State MigrationState
// Applied is true when the migration has been applied to the database,
// regardless of whether the file still matches. Kept for backward compatibility.
Applied bool
}
MigrationStatus represents the state of a single migration.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner executes migrations against a database using the driver interface.
func NewRunner ¶
NewRunner creates a Runner that reads migration files from dir and executes them against the provided driver.
func (*Runner) Lint ¶
func (r *Runner) Lint(ctx context.Context) ([]LintResult, error)
Lint checks all applied migrations for checksum mismatches, detecting files that were modified after being applied.