migrate

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2023 License: MIT Imports: 11 Imported by: 4

Documentation

Index

Constants

View Source
const (
	FieldMigrationsVersion   = "version"
	FieldMigrationsMigration = "migration"
	FieldMigrationsTable     = "table"
	FieldMigrationsBatch     = "batch"
	FieldMigrationsId        = "id"
)

Variables

This section is empty.

Functions

func AddGlobalScopeForMigrations

func AddGlobalScopeForMigrations(name string, apply func(builder query.Condition))

AddGlobalScopeForMigrations assign a global scope to a model

func AddLocalScopeForMigrations

func AddLocalScopeForMigrations(name string, apply func(builder query.Condition))

AddLocalScopeForMigrations assign a local scope to a model

func MigrationsFields

func MigrationsFields() []string

MigrationsFields return all fields in Migrations model

func MigrationsTable

func MigrationsTable() string

MigrationsTable return table name for Migrations

func SetMigrationsTable

func SetMigrationsTable(tableName string)

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func NewBuilder

func NewBuilder(name string, prefix string) *Builder

func (*Builder) BigIncrements

func (t *Builder) BigIncrements(name string) *ColumnDefinition

func (*Builder) BigInteger

func (t *Builder) BigInteger(name string, autoIncrement bool, unsigned bool) *ColumnDefinition

func (*Builder) Binary

func (t *Builder) Binary(name string) *ColumnDefinition

func (*Builder) Boolean

func (t *Builder) Boolean(name string) *ColumnDefinition

func (*Builder) Build

func (t *Builder) Build() []string

func (*Builder) Char

func (t *Builder) Char(name string, length int) *ColumnDefinition

func (*Builder) Charset

func (t *Builder) Charset(charset string)

func (*Builder) Collation

func (t *Builder) Collation(collation string)

func (*Builder) Create

func (t *Builder) Create() *Command

func (*Builder) CreateIfNotExists

func (t *Builder) CreateIfNotExists() *Command

func (*Builder) Date

func (t *Builder) Date(name string) *ColumnDefinition

func (*Builder) DateTime

func (t *Builder) DateTime(name string, precision int) *ColumnDefinition

func (*Builder) DateTimeTz

func (t *Builder) DateTimeTz(name string, precision int) *ColumnDefinition

func (*Builder) Decimal

func (t *Builder) Decimal(name string, total int, scale int) *ColumnDefinition

func (*Builder) DefaultStringLength

func (t *Builder) DefaultStringLength(length int) *Builder

func (*Builder) Double

func (t *Builder) Double(name string, total int, scale int) *ColumnDefinition

func (*Builder) Drop

func (t *Builder) Drop() *Command

func (*Builder) DropColumn

func (t *Builder) DropColumn(columns ...string)

func (*Builder) DropForeign

func (t *Builder) DropForeign(name string) *Command

func (*Builder) DropIfExists

func (t *Builder) DropIfExists() *Command

func (*Builder) DropIndex

func (t *Builder) DropIndex(name string) *Command

func (*Builder) DropMorphs

func (t *Builder) DropMorphs(name string, indexName string)

func (*Builder) DropPrimary

func (t *Builder) DropPrimary(name string) *Command

func (*Builder) DropRememberToken

func (t *Builder) DropRememberToken()

func (*Builder) DropSpatialIndex

func (t *Builder) DropSpatialIndex(name string) *Command

func (*Builder) DropUnique

func (t *Builder) DropUnique(name string) *Command

func (*Builder) Engine

func (t *Builder) Engine(engine string)

func (*Builder) Enum

func (t *Builder) Enum(name string, items ...string) *ColumnDefinition

func (*Builder) Float

func (t *Builder) Float(name string, total int, scale int) *ColumnDefinition

func (*Builder) Foreign

func (t *Builder) Foreign(name string, columns ...string) *Command

func (*Builder) Geometry

func (t *Builder) Geometry(name string) *ColumnDefinition

func (*Builder) GeometryCollection

func (t *Builder) GeometryCollection(name string) *ColumnDefinition

func (*Builder) GetTableName

func (t *Builder) GetTableName() string

func (*Builder) Increments

func (t *Builder) Increments(name string) *ColumnDefinition

func (*Builder) Index

func (t *Builder) Index(name string, columns ...string) *Command

func (*Builder) Integer

func (t *Builder) Integer(name string, autoIncrement bool, unsigned bool) *ColumnDefinition

func (*Builder) IpAddress

func (t *Builder) IpAddress(name string) *ColumnDefinition

func (*Builder) Json

func (t *Builder) Json(name string) *ColumnDefinition

func (*Builder) Jsonb

func (t *Builder) Jsonb(name string) *ColumnDefinition

func (*Builder) LineString

func (t *Builder) LineString(name string) *ColumnDefinition

func (*Builder) LongText

func (t *Builder) LongText(name string) *ColumnDefinition

func (*Builder) MacAddress

func (t *Builder) MacAddress(name string) *ColumnDefinition

func (*Builder) MediumIncrements

func (t *Builder) MediumIncrements(name string) *ColumnDefinition

func (*Builder) MediumInteger

func (t *Builder) MediumInteger(name string, autoIncrement bool, unsigned bool) *ColumnDefinition

func (*Builder) MediumText

func (t *Builder) MediumText(name string) *ColumnDefinition

func (*Builder) Morphs

func (t *Builder) Morphs(name string, indexName string)

func (*Builder) MultiLineString

func (t *Builder) MultiLineString(name string) *ColumnDefinition

func (*Builder) MultiPoint

func (t *Builder) MultiPoint(name string) *ColumnDefinition

func (*Builder) MultiPolygon

func (t *Builder) MultiPolygon(name string) *ColumnDefinition

func (*Builder) NullableMorphs

func (t *Builder) NullableMorphs(name string, indexName string)

func (*Builder) NullableTimestamps

func (t *Builder) NullableTimestamps(precision int)

func (*Builder) Point

func (t *Builder) Point(name string, srid int) *ColumnDefinition

func (*Builder) Polygon

func (t *Builder) Polygon(name string) *ColumnDefinition

func (*Builder) Primary

func (t *Builder) Primary(name string, columns ...string) *Command

func (*Builder) RememberToken

func (t *Builder) RememberToken() *ColumnDefinition

func (*Builder) Rename

func (t *Builder) Rename(to string) *Command

func (*Builder) RenameColumn

func (t *Builder) RenameColumn(from string, to string) *Command

RenameColumn rename a column name (only support for MySQL 8.0)

func (*Builder) Set

func (t *Builder) Set(name string, items ...string) *ColumnDefinition

func (*Builder) SmallIncrements

func (t *Builder) SmallIncrements(name string) *ColumnDefinition

func (*Builder) SmallInteger

func (t *Builder) SmallInteger(name string, autoIncrement bool, unsigned bool) *ColumnDefinition

func (*Builder) SoftDeletes

func (t *Builder) SoftDeletes(column string, precision int) *ColumnDefinition

func (*Builder) SoftDeletesTz

func (t *Builder) SoftDeletesTz(column string, precision int) *ColumnDefinition

func (*Builder) SpatialIndex

func (t *Builder) SpatialIndex(name string, columns ...string) *Command

func (*Builder) String

func (t *Builder) String(name string, length int) *ColumnDefinition

func (*Builder) Temporary

func (t *Builder) Temporary()

func (*Builder) Text

func (t *Builder) Text(name string) *ColumnDefinition

func (*Builder) Time

func (t *Builder) Time(name string, precision int) *ColumnDefinition

func (*Builder) TimeTz

func (t *Builder) TimeTz(name string, precision int) *ColumnDefinition

func (*Builder) Timestamp

func (t *Builder) Timestamp(name string, precision int) *ColumnDefinition

func (*Builder) TimestampTz

func (t *Builder) TimestampTz(name string, precision int) *ColumnDefinition

func (*Builder) Timestamps

func (t *Builder) Timestamps(precision int)

func (*Builder) TimestampsTz

func (t *Builder) TimestampsTz(precision int)

func (*Builder) TinyIncrements

func (t *Builder) TinyIncrements(name string) *ColumnDefinition

func (*Builder) TinyInteger

func (t *Builder) TinyInteger(name string, autoIncrement bool, unsigned bool) *ColumnDefinition

func (*Builder) Unique

func (t *Builder) Unique(name string, columns ...string) *Command

func (*Builder) UnsignedBigInteger

func (t *Builder) UnsignedBigInteger(name string, autoIncrement bool) *ColumnDefinition

func (*Builder) UnsignedDecimal

func (t *Builder) UnsignedDecimal(name string, total int, scale int) *ColumnDefinition

func (*Builder) UnsignedInteger

func (t *Builder) UnsignedInteger(name string, autoIncrement bool) *ColumnDefinition

func (*Builder) UnsignedMediumInteger

func (t *Builder) UnsignedMediumInteger(name string, autoIncrement bool) *ColumnDefinition

func (*Builder) UnsignedSmallInteger

func (t *Builder) UnsignedSmallInteger(name string, autoIncrement bool) *ColumnDefinition

func (*Builder) UnsignedTinyInteger

func (t *Builder) UnsignedTinyInteger(name string, autoIncrement bool) *ColumnDefinition

func (*Builder) Uuid

func (t *Builder) Uuid(name string) *ColumnDefinition

func (*Builder) Year

func (t *Builder) Year(name string) *ColumnDefinition

type ColumnDefinition

type ColumnDefinition struct {
	ColumnName          string
	ColumnType          string
	ColumnComment       string
	ColumnAutoIncrement bool
	ColumnUnsigned      bool
	ColumnNullable      bool
	ColumnDefault       Expr
	ColumnCharset       string
	ColumnCollation     string
	ColumnUseCurrent    bool
	ColumnVirtualAs     string
	ColumnStoredAs      string
	ColumnAfter         string
	ColumnFirst         bool
	ColumnSrid          int64

	ColumnIndex        string
	ColumnPrimary      bool
	ColumnUnique       bool
	ColumnSpatialIndex bool

	ColumnChange bool
}

func (*ColumnDefinition) After

func (c *ColumnDefinition) After(name string) *ColumnDefinition

func (*ColumnDefinition) Always

func (c *ColumnDefinition) Always() *ColumnDefinition

func (*ColumnDefinition) AutoIncrement

func (c *ColumnDefinition) AutoIncrement() *ColumnDefinition

func (*ColumnDefinition) Build

func (c *ColumnDefinition) Build() string

func (*ColumnDefinition) Change

func (c *ColumnDefinition) Change() *ColumnDefinition

func (*ColumnDefinition) Charset

func (c *ColumnDefinition) Charset(charset string) *ColumnDefinition

func (*ColumnDefinition) Collation

func (c *ColumnDefinition) Collation(collation string) *ColumnDefinition

func (*ColumnDefinition) Comment

func (c *ColumnDefinition) Comment(comment string) *ColumnDefinition

func (*ColumnDefinition) Default

func (c *ColumnDefinition) Default(defaultVal Expr) *ColumnDefinition

func (*ColumnDefinition) First

func (c *ColumnDefinition) First() *ColumnDefinition

func (*ColumnDefinition) GeneratedAs

func (c *ColumnDefinition) GeneratedAs(expression string) *ColumnDefinition

func (*ColumnDefinition) Index

func (c *ColumnDefinition) Index(name string) *ColumnDefinition

func (*ColumnDefinition) IsChange

func (c *ColumnDefinition) IsChange() bool

func (*ColumnDefinition) Nullable

func (c *ColumnDefinition) Nullable(value bool) *ColumnDefinition

func (*ColumnDefinition) Primary

func (c *ColumnDefinition) Primary() *ColumnDefinition

func (*ColumnDefinition) SpatialIndex

func (c *ColumnDefinition) SpatialIndex() *ColumnDefinition

func (*ColumnDefinition) StoredAs

func (c *ColumnDefinition) StoredAs(expression string) *ColumnDefinition

func (*ColumnDefinition) Type

func (c *ColumnDefinition) Type() string

func (*ColumnDefinition) Unique

func (c *ColumnDefinition) Unique() *ColumnDefinition

func (*ColumnDefinition) Unsigned

func (c *ColumnDefinition) Unsigned() *ColumnDefinition

func (*ColumnDefinition) UseCurrent

func (c *ColumnDefinition) UseCurrent() *ColumnDefinition

func (*ColumnDefinition) VirtualAs

func (c *ColumnDefinition) VirtualAs(expression string) *ColumnDefinition

type Command

type Command struct {
	CommandName       string
	CommandIndex      string
	CommandParameters []string
	CommandAlgorithm  string

	CommandReferences            []string
	CommandOnTable               string
	CommandOnDelete              string
	CommandOnUpdate              string
	CommandNotInitiallyImmediate bool
	// contains filtered or unexported fields
}

func NewCommand

func NewCommand(t *Builder) *Command

func (*Command) Algorithm

func (c *Command) Algorithm(algorithm string) *Command

func (*Command) Build

func (c *Command) Build() string

func (*Command) Columns

func (c *Command) Columns(columns ...string) *Command

func (*Command) Equal

func (c *Command) Equal(name string) bool

func (*Command) Index

func (c *Command) Index(name string) *Command

func (*Command) Name

func (c *Command) Name(name string) *Command

func (*Command) NotInitiallyImmediate

func (c *Command) NotInitiallyImmediate(value bool) *Command

func (*Command) On

func (c *Command) On(table string) *Command

func (*Command) OnDelete

func (c *Command) OnDelete(action string) *Command

func (*Command) OnUpdate

func (c *Command) OnUpdate(action string) *Command

func (*Command) References

func (c *Command) References(columns ...string) *Command

type Expr

type Expr struct {
	Type  ExprType
	Value string
}

func RawExpr

func RawExpr(value string) Expr

func StringExpr

func StringExpr(value string) Expr

type ExprType

type ExprType int
const (
	ExprTypeString ExprType = iota
	ExprTypeRaw
)

type Manager

type Manager struct {
	Engine              string
	Charset             string
	Collation           string
	Prefix              string
	DefaultStringLength int
	MigrationTable      string
	// contains filtered or unexported fields
}

func NewManager

func NewManager(db *sql.DB) *Manager

func (*Manager) AddVersion

func (m *Manager) AddVersion(ctx context.Context, version string, tableName string, sqlStr string) error

func (*Manager) Execute

func (m *Manager) Execute(builder *Builder, version string)

func (*Manager) HasVersion

func (m *Manager) HasVersion(ctx context.Context, version string, tableName string) bool

func (*Manager) Init

func (m *Manager) Init(ctx context.Context) *Manager

func (*Manager) Run

func (m *Manager) Run(ctx context.Context) error

func (*Manager) Schema

func (m *Manager) Schema(version string) *Schema

type Migrations

type Migrations struct {
	Version   string
	Migration string
	Table     string
	Batch     int64
	Id        int64
}

func (Migrations) As

func (w Migrations) As(dst interface{}) error

As convert object to other type dst must be a pointer to struct

func (Migrations) ToMigrationsN

func (w Migrations) ToMigrationsN(allows ...string) MigrationsN

type MigrationsModel

type MigrationsModel struct {
	// contains filtered or unexported fields
}

MigrationsModel is a model which encapsulates the operations of the object

func NewMigrationsModel

func NewMigrationsModel(db query.Database) *MigrationsModel

NewMigrationsModel create a MigrationsModel

func (*MigrationsModel) Condition

func (m *MigrationsModel) Condition(builder query.SQLBuilder) *MigrationsModel

Condition add query builder to model

func (*MigrationsModel) Count

func (m *MigrationsModel) Count(ctx context.Context, builders ...query.SQLBuilder) (int64, error)

Count return model count for a given query

func (*MigrationsModel) Create

func (m *MigrationsModel) Create(ctx context.Context, kv query.KV) (int64, error)

Create save a new migrations to database

func (*MigrationsModel) Delete

func (m *MigrationsModel) Delete(ctx context.Context, builders ...query.SQLBuilder) (int64, error)

Delete remove a model

func (*MigrationsModel) DeleteById

func (m *MigrationsModel) DeleteById(ctx context.Context, id int64) (int64, error)

DeleteById remove a model by id

func (*MigrationsModel) Exists

func (m *MigrationsModel) Exists(ctx context.Context, builders ...query.SQLBuilder) (bool, error)

Exists return whether the records exists for a given query

func (*MigrationsModel) Find

func (m *MigrationsModel) Find(ctx context.Context, id int64) (*MigrationsN, error)

Find retrieve a model by its primary key

func (*MigrationsModel) First

func (m *MigrationsModel) First(ctx context.Context, builders ...query.SQLBuilder) (*MigrationsN, error)

First return first result for given query

func (*MigrationsModel) Get

func (m *MigrationsModel) Get(ctx context.Context, builders ...query.SQLBuilder) ([]MigrationsN, error)

Get retrieve all results for given query

func (*MigrationsModel) GetDB

func (m *MigrationsModel) GetDB() query.Database

GetDB return database instance

func (*MigrationsModel) Paginate

func (m *MigrationsModel) Paginate(ctx context.Context, page int64, perPage int64, builders ...query.SQLBuilder) ([]MigrationsN, query.PaginateMeta, error)

func (*MigrationsModel) Save

func (m *MigrationsModel) Save(ctx context.Context, migrations MigrationsN, onlyFields ...string) (int64, error)

Save save a migrations to database

func (*MigrationsModel) SaveAll

func (m *MigrationsModel) SaveAll(ctx context.Context, migrationss []MigrationsN) ([]int64, error)

SaveAll save all migrationss to database

func (*MigrationsModel) SaveOrUpdate

func (m *MigrationsModel) SaveOrUpdate(ctx context.Context, migrations MigrationsN, onlyFields ...string) (id int64, updated bool, err error)

SaveOrUpdate save a new migrations or update it when it has a id > 0

func (*MigrationsModel) Update

func (m *MigrationsModel) Update(ctx context.Context, builder query.SQLBuilder, migrations MigrationsN, onlyFields ...string) (int64, error)

Update update a model for given query

func (*MigrationsModel) UpdateById

func (m *MigrationsModel) UpdateById(ctx context.Context, id int64, migrations MigrationsN, onlyFields ...string) (int64, error)

UpdateById update a model by id

func (*MigrationsModel) UpdateFields

func (m *MigrationsModel) UpdateFields(ctx context.Context, kv query.KV, builders ...query.SQLBuilder) (int64, error)

UpdateFields update kv for a given query

func (*MigrationsModel) WithLocalScopes

func (m *MigrationsModel) WithLocalScopes(names ...string) *MigrationsModel

WithLocalScopes add a local scope for given query

func (*MigrationsModel) WithoutGlobalScopes

func (m *MigrationsModel) WithoutGlobalScopes(names ...string) *MigrationsModel

WithoutGlobalScopes remove a global scope for given query

type MigrationsN

type MigrationsN struct {
	Version   null.String
	Migration null.String
	Table     null.String
	Batch     null.Int
	Id        null.Int
	// contains filtered or unexported fields
}

MigrationsN is a Migrations object, all fields are nullable

func (*MigrationsN) As

func (inst *MigrationsN) As(dst interface{}) error

As convert object to other type dst must be a pointer to struct

func (*MigrationsN) Delete

func (inst *MigrationsN) Delete(ctx context.Context) error

Delete remove a migrations

func (*MigrationsN) Save

func (inst *MigrationsN) Save(ctx context.Context, onlyFields ...string) error

Save create a new model or update it

func (*MigrationsN) SetModel

func (inst *MigrationsN) SetModel(migrationsModel *MigrationsModel)

SetModel set model for Migrations

func (*MigrationsN) Staled

func (inst *MigrationsN) Staled(onlyFields ...string) bool

Staled identify whether the object has been modified

func (*MigrationsN) StaledKV

func (inst *MigrationsN) StaledKV(onlyFields ...string) query.KV

StaledKV return all fields has been modified

func (*MigrationsN) String

func (inst *MigrationsN) String() string

String convert instance to json string

func (*MigrationsN) ToMigrations

func (w *MigrationsN) ToMigrations() Migrations

type Schema

type Schema struct {
	// contains filtered or unexported fields
}

func NewSchema

func NewSchema(m *Manager, v string) *Schema

NewSchema create a new Schema

func (*Schema) Create

func (s *Schema) Create(table string, apply func(builder *Builder))

Create creat a new table

func (*Schema) Drop

func (s *Schema) Drop(table string)

Drop drop a table

func (*Schema) DropIfExists

func (s *Schema) DropIfExists(table string)

Drop drop a table if exists

func (*Schema) Table

func (s *Schema) Table(table string, apply func(builder *Builder))

Table update a existing table

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL