12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package gorm
- import (
- "gorm.io/gorm/clause"
- "gorm.io/gorm/schema"
- )
- // Migrator returns migrator
- func (db *DB) Migrator() Migrator {
- return db.Dialector.Migrator(db.Session(&Session{}))
- }
- // AutoMigrate run auto migration for given models
- func (db *DB) AutoMigrate(dst ...interface{}) error {
- return db.Migrator().AutoMigrate(dst...)
- }
- // ViewOption view option
- type ViewOption struct {
- Replace bool
- CheckOption string
- Query *DB
- }
- type ColumnType interface {
- Name() string
- DatabaseTypeName() string
- Length() (length int64, ok bool)
- DecimalSize() (precision int64, scale int64, ok bool)
- Nullable() (nullable bool, ok bool)
- }
- type Migrator interface {
- // AutoMigrate
- AutoMigrate(dst ...interface{}) error
- // Database
- CurrentDatabase() string
- FullDataTypeOf(*schema.Field) clause.Expr
- // Tables
- CreateTable(dst ...interface{}) error
- DropTable(dst ...interface{}) error
- HasTable(dst interface{}) bool
- RenameTable(oldName, newName interface{}) error
- // Columns
- AddColumn(dst interface{}, field string) error
- DropColumn(dst interface{}, field string) error
- AlterColumn(dst interface{}, field string) error
- MigrateColumn(dst interface{}, field *schema.Field, columnType ColumnType) error
- HasColumn(dst interface{}, field string) bool
- RenameColumn(dst interface{}, oldName, field string) error
- ColumnTypes(dst interface{}) ([]ColumnType, error)
- // Views
- CreateView(name string, option ViewOption) error
- DropView(name string) error
- // Constraints
- CreateConstraint(dst interface{}, name string) error
- DropConstraint(dst interface{}, name string) error
- HasConstraint(dst interface{}, name string) bool
- // Indexes
- CreateIndex(dst interface{}, name string) error
- DropIndex(dst interface{}, name string) error
- HasIndex(dst interface{}, name string) bool
- RenameIndex(dst interface{}, oldName, newName string) error
- }
|