type
RunnerOptions
type RunnerOptions struct {
// AllowInsecureDatabase explicitly permits a PostgreSQL connection that can
// fall back to plaintext. It is intended only for local migration drills.
AllowInsecureDatabase bool
// AllowMaintenance admits traffic-sensitive semantic steps such as content
// rewrites, compiled data transforms, resource retirement, and
// reference-index rebuilds. Every old writer must be stopped while they run.
// It does not relax artifact validation.
AllowMaintenance bool
// AllowUnbounded permits a zero operational timeout. Without this explicit
// admission, zero selects the runner's bounded production default.
AllowUnbounded bool
// AdvisoryLockWait bounds how long this runner waits for another migrator.
AdvisoryLockWait time.Duration
// LockTimeout bounds PostgreSQL lock acquisition inside a phase.
LockTimeout time.Duration
// StatementTimeout bounds one transactional SQL statement.
StatementTimeout time.Duration
// BatchTimeout bounds the complete execution of one checkpoint batch.
BatchTimeout time.Duration
// ConcurrentIndexTimeout bounds one CREATE/DROP INDEX CONCURRENTLY command.
ConcurrentIndexTimeout time.Duration
// IdleInTransactionTimeout protects a paused transactional phase.
IdleInTransactionTimeout time.Duration
// StopAfterPhase and StopAfterStep are explicit, successfully committed
// rollout boundaries. A transaction phase can stop only at its final step.
StopAfterPhase string
StopAfterStep string
// Notice receives non-blocking execution provenance after the complete
// pending history has passed preflight.
Notice func(MigrationNotice)
// afterBatch is an internal deterministic interruption seam used to prove
// that committed data and checkpoints resume together. Production callers
// cannot configure it.
afterBatch func(artifact, phase, step string, checkpoint json.RawMessage) error
}Explicit operational admissions, bounded timeouts, and resumable boundaries.
Source adapters/postgres/artifact_runner.go:28
AllowMaintenance admits traffic-sensitive steps only after every old writer and worker is stopped; it does not relax artifact validation. Zero timeouts use bounded defaults unless AllowUnbounded is explicit.
Related types
MigrationNoticeMachine-readable non-blocking runner context.