Documentation
¶
Index ¶
- func ColumnToSQL(col Column) string
- func NotNullConstraintName(columnName string) string
- func TemporaryName(name string) string
- func TriggerFunctionName(tableName, columnName string) string
- func TriggerName(tableName, columnName string) string
- type CallbackFn
- type CheckConstraint
- type CheckConstraintError
- type Column
- type ColumnAlreadyExistsError
- type ColumnDoesNotExistError
- type ColumnIsNotNullableError
- type ColumnReferenceError
- type EmptyMigrationError
- type FieldRequiredError
- type ForeignKeyReference
- type IndexAlreadyExistsError
- type IndexDoesNotExistError
- type InvalidMigrationError
- type InvalidPrimaryKeyError
- type InvalidReplicaIdentityError
- type IsolatedOperation
- type Migration
- type MultipleAlterColumnChangesError
- type NoDownSQLAllowedError
- type NoUpSQLAllowedError
- type OpAddColumn
- func (o *OpAddColumn) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpAddColumn) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpAddColumn) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpAddColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpAlterColumn
- func (o *OpAlterColumn) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpAlterColumn) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpAlterColumn) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpAlterColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpChangeType
- func (o *OpChangeType) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpChangeType) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpChangeType) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpChangeType) Validate(ctx context.Context, s *schema.Schema) error
- type OpCreateIndex
- func (o *OpCreateIndex) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpCreateIndex) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpCreateIndex) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpCreateIndex) Validate(ctx context.Context, s *schema.Schema) error
- type OpCreateTable
- func (o *OpCreateTable) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpCreateTable) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpCreateTable) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpCreateTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropColumn
- func (o *OpDropColumn) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpDropColumn) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpDropColumn) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpDropColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropConstraint
- func (o *OpDropConstraint) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpDropConstraint) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpDropConstraint) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpDropConstraint) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropIndex
- func (o *OpDropIndex) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpDropIndex) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpDropIndex) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpDropIndex) Validate(ctx context.Context, s *schema.Schema) error
- type OpDropTable
- func (o *OpDropTable) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpDropTable) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpDropTable) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpDropTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpName
- type OpRawSQL
- func (o *OpRawSQL) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpRawSQL) IsIsolated()
- func (o *OpRawSQL) RequiresSchemaRefresh()
- func (o *OpRawSQL) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpRawSQL) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpRawSQL) Validate(ctx context.Context, s *schema.Schema) error
- type OpRenameColumn
- func (o *OpRenameColumn) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpRenameColumn) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpRenameColumn) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpRenameColumn) Validate(ctx context.Context, s *schema.Schema) error
- type OpRenameTable
- func (o *OpRenameTable) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpRenameTable) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpRenameTable) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpRenameTable) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetCheckConstraint
- func (o *OpSetCheckConstraint) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpSetCheckConstraint) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpSetCheckConstraint) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpSetCheckConstraint) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetForeignKey
- func (o *OpSetForeignKey) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpSetForeignKey) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpSetForeignKey) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpSetForeignKey) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetNotNull
- func (o *OpSetNotNull) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpSetNotNull) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpSetNotNull) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpSetNotNull) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetReplicaIdentity
- func (o *OpSetReplicaIdentity) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpSetReplicaIdentity) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpSetReplicaIdentity) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpSetReplicaIdentity) Validate(ctx context.Context, s *schema.Schema) error
- type OpSetUnique
- func (o *OpSetUnique) Complete(ctx context.Context, conn *sql.DB) error
- func (o *OpSetUnique) Rollback(ctx context.Context, conn *sql.DB) error
- func (o *OpSetUnique) Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, ...) error
- func (o *OpSetUnique) Validate(ctx context.Context, s *schema.Schema) error
- type Operation
- type Operations
- type ReplicaIdentity
- type RequiresSchemaRefreshOperation
- type TableAlreadyExistsError
- type TableDoesNotExistError
- type TriggerDirection
- type UniqueConstraint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ColumnToSQL ¶
func NotNullConstraintName ¶
func TemporaryName ¶
func TriggerFunctionName ¶
func TriggerName ¶
Types ¶
type CallbackFn ¶ added in v0.2.0
type CallbackFn func(int64)
type CheckConstraint ¶
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 {
Name string `json:"name"`
Type string `json:"type"`
Nullable bool `json:"nullable"`
Unique bool `json:"unique"`
PrimaryKey bool `json:"pk"`
Default *string `json:"default"`
Check *CheckConstraint `json:"check"`
References *ForeignKeyReference `json:"references"`
}
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 ColumnReferenceError ¶
func (ColumnReferenceError) Error ¶
func (e ColumnReferenceError) Error() string
func (ColumnReferenceError) Unwrap ¶
func (e ColumnReferenceError) Unwrap() error
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 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 InvalidPrimaryKeyError ¶ added in v0.2.0
func (InvalidPrimaryKeyError) Error ¶ added in v0.2.0
func (e InvalidPrimaryKeyError) 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 {
IsIsolated()
}
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 MultipleAlterColumnChangesError ¶
type MultipleAlterColumnChangesError struct {
Changes int
}
func (MultipleAlterColumnChangesError) Error ¶
func (e MultipleAlterColumnChangesError) Error() string
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 {
Table string `json:"table"`
Up *string `json:"up"`
Column Column `json:"column"`
}
type OpAlterColumn ¶
type OpAlterColumn struct {
Table string `json:"table"`
Column string `json:"column"`
Name string `json:"name"`
Type string `json:"type"`
Check *CheckConstraint `json:"check"`
References *ForeignKeyReference `json:"references"`
Nullable *bool `json:"nullable"`
Unique *UniqueConstraint `json:"unique"`
Up string `json:"up"`
Down string `json:"down"`
}
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"`
}
type OpCreateIndex ¶
type OpCreateIndex struct {
Name string `json:"name"`
Table string `json:"table"`
Columns []string `json:"columns"`
}
type OpCreateTable ¶
type OpDropColumn ¶
type OpDropColumn struct {
Table string `json:"table"`
Column string `json:"column"`
Down *string `json:"down,omitempty"`
}
type OpDropConstraint ¶
type OpDropConstraint struct {
Table string `json:"table"`
Column string `json:"column"`
Name string `json:"name"`
Up string `json:"up"`
Down string `json:"down"`
}
type OpDropIndex ¶
type OpDropIndex struct {
Name string `json:"name"`
}
type OpDropTable ¶
type OpDropTable struct {
Name string `json:"name"`
}
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" 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 ¶
func (*OpRawSQL) IsIsolated ¶
func (o *OpRawSQL) IsIsolated()
this operation is isolated, cannot be executed with other operations
func (*OpRawSQL) RequiresSchemaRefresh ¶
func (o *OpRawSQL) RequiresSchemaRefresh()
this operation requires the resulting schema to be refreshed
type OpRenameColumn ¶
type OpRenameColumn struct {
Table string `json:"table"`
From string `json:"from"`
To string `json:"to"`
}
type OpRenameTable ¶
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"`
}
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"`
}
type OpSetNotNull ¶
type OpSetNotNull struct {
Table string `json:"table"`
Column string `json:"column"`
Up string `json:"up"`
Down string `json:"down"`
}
type OpSetReplicaIdentity ¶ added in v0.4.0
type OpSetReplicaIdentity struct {
Table string `json:"table"`
Identity ReplicaIdentity `json:"identity"`
}
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"`
}
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
Start(ctx context.Context, conn *sql.DB, stateSchema string, s *schema.Schema, cbs ...CallbackFn) 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 *sql.DB) error
// Rollback will revert the changes made by Start. It is not possible to
// rollback a completed migration.
Rollback(ctx context.Context, conn *sql.DB) 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 ReplicaIdentity ¶ added in v0.4.0
type RequiresSchemaRefreshOperation ¶
type RequiresSchemaRefreshOperation interface {
RequiresSchemaRefresh()
}
RequiresSchemaRefreshOperation is an operation that requires the resulting schema to be refreshed
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 string `json:"name"`
}
func (*UniqueConstraint) Validate ¶
func (c *UniqueConstraint) Validate() error
Source Files
¶
- backfill.go
- check.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_table.go
- op_raw_sql.go
- op_rename_column.go
- op_rename_table.go
- op_set_check.go
- op_set_fk.go
- op_set_notnull.go
- op_set_replica_identity.go
- op_set_unique.go
- trigger.go
- unique.go
Click to show internal directories.
Click to hide internal directories.