Documentation ¶
Index ¶
- func Backfill(ctx context.Context, conn db.DB, table *schema.Table, cbs ...CallbackFn) error
- func ColumnToSQL(col Column, tr SQLTransformer) (string, error)
- func DuplicationName(name string) string
- func IsDuplicatedName(name string) bool
- func IsNotNullConstraintName(name string) bool
- func NotNullConstraintName(columnName string) string
- func RenameDuplicatedColumn(ctx context.Context, conn db.DB, table *schema.Table, column *schema.Column) error
- func StripDuplicationPrefix(name string) string
- func TemporaryName(name string) string
- func TriggerFunctionName(tableName, columnName string) string
- func TriggerName(tableName, columnName string) string
- type AlterColumnNoChangesError
- type BackfillNotPossibleError
- type CallbackFn
- type CheckConstraint
- type CheckConstraintError
- type Column
- type ColumnAlreadyExistsError
- type ColumnDoesNotExistError
- type ColumnIsNotNullableError
- type ColumnIsNullableError
- type ColumnReferenceError
- type ConstraintAlreadyExistsError
- type ConstraintDoesNotExistError
- type Duplicator
- type EmptyMigrationError
- type FieldRequiredError
- type ForeignKeyReference
- type ForeignKeyReferenceOnDelete
- type IndexAlreadyExistsError
- type IndexDoesNotExistError
- type InvalidMigrationError
- type InvalidOnDeleteSettingError
- type InvalidReplicaIdentityError
- type IsolatedOperation
- type Migration
- type NoDownSQLAllowedError
- type NoUpSQLAllowedError
- type OpAddColumn
- func (o *OpAddColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpAddColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpAddColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpAddColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpAlterColumn
- func (o *OpAlterColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpAlterColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpAlterColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpAlterColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpChangeType
- func (o *OpChangeType) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpChangeType) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpChangeType) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpChangeType) Validate(ctx context.Context, s *schema.Schema) error
- type OpCreateIndex
- func (o *OpCreateIndex) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpCreateIndex) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpCreateIndex) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpCreateIndex) Validate(ctx context.Context, s *schema.Schema) error
- type OpCreateTable
- func (o *OpCreateTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpCreateTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpCreateTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpCreateTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropColumn
- func (o *OpDropColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpDropColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpDropColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpDropColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropConstraint
- func (o *OpDropConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpDropConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpDropConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpDropConstraint) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropIndex
- func (o *OpDropIndex) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpDropIndex) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpDropIndex) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpDropIndex) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropNotNull
- func (o *OpDropNotNull) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpDropNotNull) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpDropNotNull) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpDropNotNull) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropTable
- func (o *OpDropTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpDropTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpDropTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpDropTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpName
- type OpRawSQL
- func (o *OpRawSQL) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpRawSQL) IsIsolated() bool
- func (o *OpRawSQL) RequiresSchemaRefresh()
- func (o *OpRawSQL) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpRawSQL) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpRawSQL) Validate(ctx context.Context, s *schema.Schema) error
- type OpRenameConstraint
- func (o *OpRenameConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpRenameConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpRenameConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpRenameConstraint) Validate(ctx context.Context, s *schema.Schema) error
- type OpRenameTable
- func (o *OpRenameTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpRenameTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpRenameTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpRenameTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetCheckConstraint
- func (o *OpSetCheckConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetCheckConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetCheckConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetCheckConstraint) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetComment
- func (o *OpSetComment) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetComment) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetComment) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetComment) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetDefault
- func (o *OpSetDefault) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetDefault) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetDefault) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetDefault) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetForeignKey
- func (o *OpSetForeignKey) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetForeignKey) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetForeignKey) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetForeignKey) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetNotNull
- func (o *OpSetNotNull) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetNotNull) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetNotNull) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetNotNull) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetReplicaIdentity
- func (o *OpSetReplicaIdentity) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetReplicaIdentity) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetReplicaIdentity) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetReplicaIdentity) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetUnique
- func (o *OpSetUnique) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
- func (o *OpSetUnique) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
- func (o *OpSetUnique) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, ...) (*schema.Table, error)
- func (o *OpSetUnique) Validate(ctx context.Context, s *schema.Schema) error
- type Operation
- type Operations
- type PgRollMigration
- type PgRollOperation
- type PgRollOperations
- type ReplicaIdentity
- type RequiresSchemaRefreshOperation
- type SQLTransformer
- type SQLTransformerFunc
- type TableAlreadyExistsError
- type TableDoesNotExistError
- type TriggerDirection
- type UniqueConstraint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Backfill ¶ added in v0.6.0
Backfill updates all rows in the given table, in batches, using the following algorithm: 1. Get the primary key column for the table. 2. Get the first batch of rows from the table, ordered by the primary key. 3. Update each row in the batch, setting the value of the primary key column to itself. 4. Repeat steps 2 and 3 until no more rows are returned.
func ColumnToSQL ¶
func ColumnToSQL(col Column, tr SQLTransformer) (string, error)
func DuplicationName ¶ added in v0.5.0
func IsDuplicatedName ¶ added in v0.5.0
func IsNotNullConstraintName ¶ added in v0.5.0
func NotNullConstraintName ¶
func RenameDuplicatedColumn ¶ added in v0.5.0
func RenameDuplicatedColumn(ctx context.Context, conn db.DB, table *schema.Table, column *schema.Column) error
RenameDuplicatedColumn: * renames a duplicated column to its original name * renames any foreign keys on the duplicated column to their original name. * Validates and renames any temporary `CHECK` constraints on the duplicated column.
func StripDuplicationPrefix ¶ added in v0.5.0
func TemporaryName ¶
func TriggerFunctionName ¶
func TriggerName ¶
Types ¶
type AlterColumnNoChangesError ¶ added in v0.6.0
func (AlterColumnNoChangesError) Error ¶ added in v0.6.0
func (e AlterColumnNoChangesError) Error() string
type BackfillNotPossibleError ¶ added in v0.6.0
type BackfillNotPossibleError struct {
Table string
}
func (BackfillNotPossibleError) Error ¶ added in v0.6.0
func (e BackfillNotPossibleError) Error() string
type CallbackFn ¶ added in v0.2.0
type CallbackFn func(int64)
type CheckConstraint ¶
type CheckConstraint struct { // Constraint expression Constraint string `json:"constraint"` // Name of check constraint Name string `json:"name"` }
Check constraint definition
func (*CheckConstraint) Validate ¶
func (c *CheckConstraint) Validate() error
type CheckConstraintError ¶
func (CheckConstraintError) Error ¶
func (e CheckConstraintError) Error() string
func (CheckConstraintError) Unwrap ¶
func (e CheckConstraintError) Unwrap() error
type Column ¶
type Column struct { // Check constraint for the column Check *CheckConstraint `json:"check,omitempty"` // Postgres comment for the column Comment *string `json:"comment,omitempty"` // Default value for the column Default *string `json:"default,omitempty"` // Name of the column Name string `json:"name"` // Indicates if the column is nullable Nullable *bool `json:"nullable,omitempty"` // Indicates if the column is part of the primary key Pk *bool `json:"pk,omitempty"` // Foreign key constraint for the column References *ForeignKeyReference `json:"references,omitempty"` // Postgres type of the column Type string `json:"type"` // Indicates if the column values must be unique Unique *bool `json:"unique,omitempty"` }
Column definition
func (*Column) IsNullable ¶ added in v0.5.0
func (*Column) IsPrimaryKey ¶ added in v0.5.0
type ColumnAlreadyExistsError ¶
func (ColumnAlreadyExistsError) Error ¶
func (e ColumnAlreadyExistsError) Error() string
type ColumnDoesNotExistError ¶
func (ColumnDoesNotExistError) Error ¶
func (e ColumnDoesNotExistError) Error() string
type ColumnIsNotNullableError ¶
func (ColumnIsNotNullableError) Error ¶
func (e ColumnIsNotNullableError) Error() string
type ColumnIsNullableError ¶ added in v0.5.0
func (ColumnIsNullableError) Error ¶ added in v0.5.0
func (e ColumnIsNullableError) Error() string
type ColumnReferenceError ¶
func (ColumnReferenceError) Error ¶
func (e ColumnReferenceError) Error() string
func (ColumnReferenceError) Unwrap ¶
func (e ColumnReferenceError) Unwrap() error
type ConstraintAlreadyExistsError ¶ added in v0.6.0
func (ConstraintAlreadyExistsError) Error ¶ added in v0.6.0
func (e ConstraintAlreadyExistsError) Error() string
type ConstraintDoesNotExistError ¶ added in v0.5.0
func (ConstraintDoesNotExistError) Error ¶ added in v0.5.0
func (e ConstraintDoesNotExistError) Error() string
type Duplicator ¶ added in v0.5.0
type Duplicator struct {
// contains filtered or unexported fields
}
func NewColumnDuplicator ¶ added in v0.5.0
NewColumnDuplicator creates a new Duplicator for a column.
func (*Duplicator) Duplicate ¶ added in v0.5.0
func (d *Duplicator) Duplicate(ctx context.Context) error
Duplicate duplicates a column in the table, including all constraints and comments.
func (*Duplicator) WithType ¶ added in v0.5.0
func (d *Duplicator) WithType(t string) *Duplicator
func (*Duplicator) WithoutConstraint ¶ added in v0.5.0
func (d *Duplicator) WithoutConstraint(c string) *Duplicator
func (*Duplicator) WithoutNotNull ¶ added in v0.5.0
func (d *Duplicator) WithoutNotNull() *Duplicator
type EmptyMigrationError ¶
type EmptyMigrationError struct{}
func (EmptyMigrationError) Error ¶
func (e EmptyMigrationError) Error() string
type FieldRequiredError ¶
type FieldRequiredError struct {
Name string
}
func (FieldRequiredError) Error ¶
func (e FieldRequiredError) Error() string
type ForeignKeyReference ¶
type ForeignKeyReference struct { // Name of the referenced column Column string `json:"column"` // Name of the foreign key constraint Name string `json:"name"` // On delete behavior of the foreign key constraint OnDelete ForeignKeyReferenceOnDelete `json:"on_delete,omitempty"` // Name of the referenced table Table string `json:"table"` }
Foreign key reference definition
type ForeignKeyReferenceOnDelete ¶ added in v0.6.0
type ForeignKeyReferenceOnDelete string
const ForeignKeyReferenceOnDeleteCASCADE ForeignKeyReferenceOnDelete = "CASCADE"
const ForeignKeyReferenceOnDeleteNOACTION ForeignKeyReferenceOnDelete = "NO ACTION"
const ForeignKeyReferenceOnDeleteRESTRICT ForeignKeyReferenceOnDelete = "RESTRICT"
const ForeignKeyReferenceOnDeleteSETDEFAULT ForeignKeyReferenceOnDelete = "SET DEFAULT"
const ForeignKeyReferenceOnDeleteSETNULL ForeignKeyReferenceOnDelete = "SET NULL"
type IndexAlreadyExistsError ¶
type IndexAlreadyExistsError struct {
Name string
}
func (IndexAlreadyExistsError) Error ¶
func (e IndexAlreadyExistsError) Error() string
type IndexDoesNotExistError ¶
type IndexDoesNotExistError struct {
Name string
}
func (IndexDoesNotExistError) Error ¶
func (e IndexDoesNotExistError) Error() string
type InvalidMigrationError ¶
type InvalidMigrationError struct {
Reason string
}
func (InvalidMigrationError) Error ¶
func (e InvalidMigrationError) Error() string
type InvalidOnDeleteSettingError ¶ added in v0.6.0
func (InvalidOnDeleteSettingError) Error ¶ added in v0.6.0
func (e InvalidOnDeleteSettingError) Error() string
type InvalidReplicaIdentityError ¶ added in v0.4.0
func (InvalidReplicaIdentityError) Error ¶ added in v0.4.0
func (e InvalidReplicaIdentityError) Error() string
type IsolatedOperation ¶
type IsolatedOperation interface { // this operation is isolated when executed on start, cannot be executed with other operations IsIsolated() bool }
IsolatedOperation is an operation that cannot be executed with other operations in the same migration
type Migration ¶
type Migration struct { Name string `json:"name"` Operations Operations `json:"operations"` }
type NoDownSQLAllowedError ¶
type NoDownSQLAllowedError struct{}
func (NoDownSQLAllowedError) Error ¶
func (e NoDownSQLAllowedError) Error() string
type NoUpSQLAllowedError ¶
type NoUpSQLAllowedError struct{}
func (NoUpSQLAllowedError) Error ¶
func (e NoUpSQLAllowedError) Error() string
type OpAddColumn ¶
type OpAddColumn struct { // Column to add Column Column `json:"column"` // Name of the table Table string `json:"table"` // SQL expression for up migration Up string `json:"up,omitempty"` }
Add column operation
func (*OpAddColumn) Complete ¶
func (o *OpAddColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpAddColumn) Rollback ¶
func (o *OpAddColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpAddColumn) Start ¶
func (o *OpAddColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpAlterColumn ¶
type OpAlterColumn struct { // Add check constraint to the column Check *CheckConstraint `json:"check,omitempty"` // Name of the column Column string `json:"column"` // New comment on the column Comment nullable.Nullable[string] `json:"comment,omitempty"` // Default value of the column Default *string `json:"default,omitempty"` // SQL expression for down migration Down string `json:"down,omitempty"` // New name of the column (for rename column operation) Name *string `json:"name,omitempty"` // Indicates if the column is nullable (for add/remove not null constraint // operation) Nullable *bool `json:"nullable,omitempty"` // Add foreign key constraint to the column References *ForeignKeyReference `json:"references,omitempty"` // Name of the table Table string `json:"table"` // New type of the column (for change type operation) Type *string `json:"type,omitempty"` // Add unique constraint to the column Unique *UniqueConstraint `json:"unique,omitempty"` // SQL expression for up migration Up string `json:"up,omitempty"` }
Alter column operation
func (*OpAlterColumn) Complete ¶
func (o *OpAlterColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpAlterColumn) Rollback ¶
func (o *OpAlterColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpAlterColumn) Start ¶
func (o *OpAlterColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpChangeType ¶
type OpChangeType struct { Table string `json:"table"` Column string `json:"column"` Type string `json:"type"` Up string `json:"up"` Down string `json:"down"` }
func (*OpChangeType) Complete ¶
func (o *OpChangeType) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpChangeType) Rollback ¶
func (o *OpChangeType) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpChangeType) Start ¶
func (o *OpChangeType) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpCreateIndex ¶
type OpCreateIndex struct { // Names of columns on which to define the index Columns []string `json:"columns"` // Index name Name string `json:"name"` // Name of table on which to define the index Table string `json:"table"` }
Create index operation
func (*OpCreateIndex) Complete ¶
func (o *OpCreateIndex) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpCreateIndex) Rollback ¶
func (o *OpCreateIndex) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpCreateIndex) Start ¶
func (o *OpCreateIndex) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpCreateTable ¶
type OpCreateTable struct { // Columns corresponds to the JSON schema field "columns". Columns []Column `json:"columns"` // Postgres comment for the table Comment *string `json:"comment,omitempty"` // Name of the table Name string `json:"name"` }
Create table operation
func (*OpCreateTable) Complete ¶
func (o *OpCreateTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpCreateTable) Rollback ¶
func (o *OpCreateTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpCreateTable) Start ¶
func (o *OpCreateTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpDropColumn ¶
type OpDropColumn struct { // Name of the column Column string `json:"column"` // SQL expression for down migration Down string `json:"down,omitempty"` // Name of the table Table string `json:"table"` }
Drop column operation
func (*OpDropColumn) Complete ¶
func (o *OpDropColumn) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpDropColumn) Rollback ¶
func (o *OpDropColumn) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpDropColumn) Start ¶
func (o *OpDropColumn) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpDropConstraint ¶
type OpDropConstraint struct { // Name of the column Column string `json:"column"` // SQL expression for down migration Down string `json:"down"` // Name of the constraint Name string `json:"name"` // Name of the table Table string `json:"table"` // SQL expression for up migration Up string `json:"up"` }
Drop constraint operation
func (*OpDropConstraint) Complete ¶
func (o *OpDropConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpDropConstraint) Rollback ¶
func (o *OpDropConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpDropConstraint) Start ¶
func (o *OpDropConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpDropIndex ¶
type OpDropIndex struct { // Index name Name string `json:"name"` }
Drop index operation
func (*OpDropIndex) Complete ¶
func (o *OpDropIndex) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpDropIndex) Rollback ¶
func (o *OpDropIndex) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpDropIndex) Start ¶
func (o *OpDropIndex) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpDropNotNull ¶ added in v0.5.0
type OpDropNotNull struct { Table string `json:"table"` Column string `json:"column"` Up string `json:"up"` Down string `json:"down"` }
func (*OpDropNotNull) Complete ¶ added in v0.5.0
func (o *OpDropNotNull) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpDropNotNull) Rollback ¶ added in v0.5.0
func (o *OpDropNotNull) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpDropNotNull) Start ¶ added in v0.5.0
func (o *OpDropNotNull) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpDropTable ¶
type OpDropTable struct { // Name of the table Name string `json:"name"` }
Drop table operation
func (*OpDropTable) Complete ¶
func (o *OpDropTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpDropTable) Rollback ¶
func (o *OpDropTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpDropTable) Start ¶
func (o *OpDropTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpName ¶
type OpName string
const ( OpNameCreateTable OpName = "create_table" OpNameRenameTable OpName = "rename_table" OpNameDropTable OpName = "drop_table" OpNameAddColumn OpName = "add_column" OpNameDropColumn OpName = "drop_column" OpNameAlterColumn OpName = "alter_column" OpNameCreateIndex OpName = "create_index" OpNameDropIndex OpName = "drop_index" OpNameRenameConstraint OpName = "rename_constraint" OpNameDropConstraint OpName = "drop_constraint" OpNameSetReplicaIdentity OpName = "set_replica_identity" OpRawSQLName OpName = "sql" // Internal operation types used by `alter_column` OpNameRenameColumn OpName = "rename_column" OpNameSetUnique OpName = "set_unique" OpNameSetNotNull OpName = "set_not_null" OpNameSetForeignKey OpName = "set_foreign_key" OpNameSetCheckConstraint OpName = "set_check_constraint" OpNameChangeType OpName = "change_type" )
func OperationName ¶
type OpRawSQL ¶
type OpRawSQL struct { // SQL expression for down migration Down string `json:"down,omitempty"` // SQL expression will run on complete step (rather than on start) OnComplete bool `json:"onComplete,omitempty"` // SQL expression for up migration Up string `json:"up"` }
Raw SQL operation
func (*OpRawSQL) IsIsolated ¶
func (*OpRawSQL) RequiresSchemaRefresh ¶
func (o *OpRawSQL) RequiresSchemaRefresh()
type OpRenameConstraint ¶ added in v0.6.0
type OpRenameConstraint struct { // Name of the constraint From string `json:"from"` // Name of the table Table string `json:"table"` // New name of the constraint To string `json:"to"` }
Rename constraint operation
func (*OpRenameConstraint) Complete ¶ added in v0.6.0
func (o *OpRenameConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpRenameConstraint) Rollback ¶ added in v0.6.0
func (o *OpRenameConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpRenameConstraint) Start ¶ added in v0.6.0
func (o *OpRenameConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpRenameTable ¶
type OpRenameTable struct { // Old name of the table From string `json:"from"` // New name of the table To string `json:"to"` }
Rename table operation
func (*OpRenameTable) Complete ¶
func (o *OpRenameTable) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpRenameTable) Rollback ¶
func (o *OpRenameTable) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpRenameTable) Start ¶
func (o *OpRenameTable) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetCheckConstraint ¶
type OpSetCheckConstraint struct { Table string `json:"table"` Column string `json:"column"` Check CheckConstraint `json:"check"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetCheckConstraint) Complete ¶
func (o *OpSetCheckConstraint) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetCheckConstraint) Rollback ¶
func (o *OpSetCheckConstraint) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetCheckConstraint) Start ¶
func (o *OpSetCheckConstraint) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetComment ¶ added in v0.6.0
type OpSetComment struct { Table string `json:"table"` Column string `json:"column"` Comment *string `json:"comment"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetComment) Complete ¶ added in v0.6.0
func (o *OpSetComment) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetComment) Rollback ¶ added in v0.6.0
func (o *OpSetComment) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetComment) Start ¶ added in v0.6.0
func (o *OpSetComment) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetDefault ¶ added in v0.6.0
type OpSetDefault struct { Table string `json:"table"` Column string `json:"column"` Default string `json:"default"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetDefault) Complete ¶ added in v0.6.0
func (o *OpSetDefault) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetDefault) Rollback ¶ added in v0.6.0
func (o *OpSetDefault) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetDefault) Start ¶ added in v0.6.0
func (o *OpSetDefault) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetForeignKey ¶
type OpSetForeignKey struct { Table string `json:"table"` Column string `json:"column"` References ForeignKeyReference `json:"references"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetForeignKey) Complete ¶
func (o *OpSetForeignKey) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetForeignKey) Rollback ¶
func (o *OpSetForeignKey) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetForeignKey) Start ¶
func (o *OpSetForeignKey) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetNotNull ¶
type OpSetNotNull struct { Table string `json:"table"` Column string `json:"column"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetNotNull) Complete ¶
func (o *OpSetNotNull) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetNotNull) Rollback ¶
func (o *OpSetNotNull) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetNotNull) Start ¶
func (o *OpSetNotNull) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetReplicaIdentity ¶ added in v0.4.0
type OpSetReplicaIdentity struct { // Replica identity to set Identity ReplicaIdentity `json:"identity"` // Name of the table Table string `json:"table"` }
Set replica identity operation
func (*OpSetReplicaIdentity) Complete ¶ added in v0.4.0
func (o *OpSetReplicaIdentity) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetReplicaIdentity) Rollback ¶ added in v0.4.0
func (o *OpSetReplicaIdentity) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetReplicaIdentity) Start ¶ added in v0.4.0
func (o *OpSetReplicaIdentity) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type OpSetUnique ¶
type OpSetUnique struct { Name string `json:"name"` Table string `json:"table"` Column string `json:"column"` Up string `json:"up"` Down string `json:"down"` }
func (*OpSetUnique) Complete ¶
func (o *OpSetUnique) Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error
func (*OpSetUnique) Rollback ¶
func (o *OpSetUnique) Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error
func (*OpSetUnique) Start ¶
func (o *OpSetUnique) Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error)
type Operation ¶
type Operation interface { // Start will apply the required changes to enable supporting the new schema // version in the database (through a view) // update the given views to expose the new schema version // Returns the table that requires backfilling, if any. Start(ctx context.Context, conn db.DB, stateSchema string, tr SQLTransformer, s *schema.Schema, cbs ...CallbackFn) (*schema.Table, error) // Complete will update the database schema to match the current version // after calling Start. // This method should be called once the previous version is no longer used Complete(ctx context.Context, conn db.DB, tr SQLTransformer, s *schema.Schema) error // Rollback will revert the changes made by Start. It is not possible to // rollback a completed migration. Rollback(ctx context.Context, conn db.DB, tr SQLTransformer) error // Validate returns a descriptive error if the operation cannot be applied to the given schema Validate(ctx context.Context, s *schema.Schema) error }
type Operations ¶
type Operations []Operation
func (Operations) MarshalJSON ¶
func (v Operations) MarshalJSON() ([]byte, error)
MarshalJSON serializes the list of operations into a JSON array.
func (*Operations) UnmarshalJSON ¶
func (v *Operations) UnmarshalJSON(data []byte) error
UnmarshalJSON deserializes the list of operations from a JSON array.
type PgRollMigration ¶ added in v0.4.2
type PgRollMigration struct { // Name of the migration Name *string `json:"name,omitempty"` // Operations corresponds to the JSON schema field "operations". Operations PgRollOperations `json:"operations"` }
PgRoll migration definition
type PgRollOperation ¶ added in v0.5.0
type PgRollOperation interface{}
type PgRollOperations ¶ added in v0.5.0
type PgRollOperations []interface{}
type ReplicaIdentity ¶ added in v0.4.0
type ReplicaIdentity struct { // Name of the index to use as replica identity Index string `json:"index"` // Type of replica identity Type string `json:"type"` }
Replica identity definition
type RequiresSchemaRefreshOperation ¶
type RequiresSchemaRefreshOperation interface {
// this operation requires the resulting schema to be refreshed when executed on start
RequiresSchemaRefresh()
}
RequiresSchemaRefreshOperation is an operation that requires the resulting schema to be refreshed
type SQLTransformer ¶ added in v0.6.0
type SQLTransformerFunc ¶ added in v0.6.0
func (SQLTransformerFunc) TransformSQL ¶ added in v0.6.0
func (fn SQLTransformerFunc) TransformSQL(sql string) (string, error)
type TableAlreadyExistsError ¶
type TableAlreadyExistsError struct {
Name string
}
func (TableAlreadyExistsError) Error ¶
func (e TableAlreadyExistsError) Error() string
type TableDoesNotExistError ¶
type TableDoesNotExistError struct {
Name string
}
func (TableDoesNotExistError) Error ¶
func (e TableDoesNotExistError) Error() string
type TriggerDirection ¶
type TriggerDirection string
const ( TriggerDirectionUp TriggerDirection = "up" TriggerDirectionDown TriggerDirection = "down" )
type UniqueConstraint ¶
type UniqueConstraint struct { // Name of unique constraint Name string `json:"name"` }
Unique constraint definition
func (*UniqueConstraint) Validate ¶
func (c *UniqueConstraint) Validate() error
Source Files ¶
- backfill.go
- check.go
- column.go
- comment.go
- duplicate.go
- errors.go
- fk_reference.go
- migrations.go
- op_add_column.go
- op_alter_column.go
- op_change_type.go
- op_common.go
- op_create_index.go
- op_create_table.go
- op_drop_column.go
- op_drop_constraint.go
- op_drop_index.go
- op_drop_not_null.go
- op_drop_table.go
- op_raw_sql.go
- op_rename_constraint.go
- op_rename_table.go
- op_set_check.go
- op_set_comment.go
- op_set_default.go
- op_set_fk.go
- op_set_notnull.go
- op_set_replica_identity.go
- op_set_unique.go
- rename.go
- trigger.go
- types.go
- unique.go