Documentation
¶
Index ¶
Constants ¶
View Source
const ( AddMigration = "migrations" DeleteMigration = "migrations" GetMigration = "migrations" ListMigrationTables = "migrations/table" SetMigration = "migrations/latest" UpdateMigration = "migrations" )
Variables ¶
This section is empty.
Functions ¶
func MigrationTablesToTable ¶
func MigrationTablesToTable(mit []*MigrationTable)
MigrationTablesToTable returns a text table of all migrations for an env
func MigrationsToTable ¶
func MigrationsToTable(mit SQLMigrationStrategy)
MigrationsToTable returns a text table for a given migration strategy
Types ¶
type Migration ¶
type Migration interface {
// Add adds / registers a new migration
Add(file string, env string, table string) error
// Get returns the migration file
Get(env string, table string) (*SQLMigrationStrategy, error)
// ListTables lists the tables for a given env
ListTables(env string) ([]*MigrationTable, error)
// Delete removes a migration
Delete(env string, table string, migrationID int) error
// Update updates metadata associated with a migration
Update(env string, table string, migrationID int, timeStamp time.Time, timeStampNull bool) error
// Set defines the current latest migration
Set(env string, table string, migrationID int) error
// GetAll returns a all migrations for an env split by table
GetAll(env string) ([]*SQLMigrationStrategy, error)
// Run applies migrations
Run(driver string, connection string, env string, table string) error
}
Migration represents the interface used to control migrations
type MigrationTable ¶
type MigrationTable struct {
Table string `json:"Table"`
Migrations []*SQLMigration `json:"Migrations"`
}
MigrationTable defines the domain for all migrations associated with a table
type SQLMigration ¶
type SQLMigration struct {
Env string `json:"env"`
FileID string `json:"file_id"`
File string `json:"file"`
FileOrder int `json:"file_order"`
SourceTable string `json:"source_table"`
MigratedAt *time.Time `json:"migrated_at"`
MigratedAtNull bool `json:"migrated_at_null"`
ID int `json:"id"`
Script string `json:"script"`
Status *string `json:"status"`
}
SQLMigration defines the domain for a migration
type SQLMigrationStrategy ¶
type SQLMigrationStrategy struct {
Table string `json:"source_table"`
Env string `json:"env"`
MigrationsUp []*SQLMigration `json:"migrations_up"`
MigrationsDown []*SQLMigration `json:"migrations_down"`
}
SQLMigrationStrategy defines the domain for a given table and env it includes our up and down migrations
Click to show internal directories.
Click to hide internal directories.