Documentation
¶
Index ¶
- type Blueprint
- type Column
- type ColumnDefinition
- type Command
- type CommonSchema
- type Connection
- type DBColumn
- type DBForeignKey
- type DBIndex
- type DriverSchema
- type ForeignKey
- type ForeignKeyDefinition
- type Grammar
- type Index
- type IndexConfig
- type IndexDefinition
- type Migration
- type Processor
- type Schema
- type Table
- type Type
- type View
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Blueprint ¶
type Blueprint interface {
// BigIncrements Create a new auto-incrementing big integer (8-byte) column on the table.
BigIncrements(column string) ColumnDefinition
// BigInteger Create a new big integer (8-byte) column on the table.
BigInteger(column string) ColumnDefinition
// Boolean Create a new boolean column on the table.
Boolean(column string) ColumnDefinition
// Build Execute the blueprint to build / modify the table.
Build(query orm.Query, grammar Grammar) error
// Char Create a new char column on the table.
Char(column string, length ...int) ColumnDefinition
// Column Create a new custom type column on the table.
Column(column string, ttype string) ColumnDefinition
// Create Indicate that the table needs to be created.
Create()
// Date Create a new date column on the table.
Date(column string) ColumnDefinition
// DateTime Create a new date-time column on the table.
DateTime(column string, precision ...int) ColumnDefinition
// DateTimeTz Create a new date-time column (with time zone) on the table.
DateTimeTz(column string, precision ...int) ColumnDefinition
// Decimal Create a new decimal column on the table.
Decimal(column string) ColumnDefinition
// Double Create a new double column on the table.
Double(column string) ColumnDefinition
// Drop Indicate that the table should be dropped.
Drop()
// DropColumn Indicate that the given columns should be dropped.
DropColumn(column ...string)
// DropForeign Indicate that the given foreign key should be dropped.
DropForeign(column ...string)
// DropForeignByName Indicate that the given foreign key should be dropped.
DropForeignByName(name string)
// DropFullText Indicate that the given fulltext index should be dropped.
DropFullText(column ...string)
// DropFullTextByName Indicate that the given fulltext index should be dropped.
DropFullTextByName(name string)
// DropIfExists Indicate that the table should be dropped if it exists.
DropIfExists()
// DropIndex Indicate that the given index should be dropped.
DropIndex(column ...string)
// DropIndexByName Indicate that the given index should be dropped.
DropIndexByName(name string)
// DropPrimary Indicate that the given primary key should be dropped.
DropPrimary(column ...string)
// DropSoftDeletes Indicate that the soft delete column should be dropped.
DropSoftDeletes(column ...string)
// DropSoftDeletesTz Indicate that the soft delete column should be dropped.
DropSoftDeletesTz(column ...string)
// DropTimestamps Indicate that the timestamp columns should be dropped.
DropTimestamps()
// DropTimestampsTz Indicate that the timestamp columns should be dropped.
DropTimestampsTz()
// DropUnique Indicate that the given unique key should be dropped.
DropUnique(column ...string)
// DropUniqueByName Indicate that the given unique key should be dropped.
DropUniqueByName(name string)
// Enum Create a new enum column on the table.
Enum(column string, array []any) ColumnDefinition
// Float Create a new float column on the table.
Float(column string, precision ...int) ColumnDefinition
// Foreign Specify a foreign key for the table.
Foreign(column ...string) ForeignKeyDefinition
// FullText Specify a fulltext for the table.
FullText(column ...string) IndexDefinition
// GetAddedColumns Get the added columns.
GetAddedColumns() []ColumnDefinition
// GetCommands Get the commands.
GetCommands() []*Command
// GetTableName Get the table name with prefix.
GetTableName() string
// HasCommand Determine if the blueprint has a specific command.
HasCommand(command string) bool
// ID Create a new auto-incrementing big integer (8-byte) column on the table.
ID(column ...string) ColumnDefinition
// Increments Create a new auto-incrementing integer (4-byte) column on the table.
Increments(column string) ColumnDefinition
// Index Specify an index for the table.
Index(column ...string) IndexDefinition
// Integer Create a new integer (4-byte) column on the table.
Integer(column string) ColumnDefinition
// IntegerIncrements Create a new auto-incrementing integer (4-byte) column on the table.
IntegerIncrements(column string) ColumnDefinition
// Json Create a new json column on the table.
Json(column string) ColumnDefinition
// Jsonb Create a new jsonb column on the table.
Jsonb(column string) ColumnDefinition
// LongText Create a new long text column on the table.
LongText(column string) ColumnDefinition
// MediumIncrements Create a new auto-incrementing medium integer (3-byte) column on the table.
MediumIncrements(column string) ColumnDefinition
// MediumInteger Create a new medium integer (3-byte) column on the table.
MediumInteger(column string) ColumnDefinition
// MediumText Create a new medium text column on the table.
MediumText(column string) ColumnDefinition
// Primary Specify the primary key(s) for the table.
Primary(column ...string)
// Rename the table to a given name.
Rename(to string)
// RenameIndex Indicate that the given indexes should be renamed.
RenameIndex(from, to string)
// SetTable Set the table that the blueprint operates on.
SetTable(name string)
// SmallIncrements Create a new auto-incrementing small integer (2-byte) column on the table.
SmallIncrements(column string) ColumnDefinition
// SmallInteger Create a new small integer (2-byte) column on the table.
SmallInteger(column string) ColumnDefinition
// SoftDeletes Add a "deleted at" timestamp for the table.
SoftDeletes(column ...string) ColumnDefinition
// SoftDeletesTz Add a "deleted at" timestampTz for the table.
SoftDeletesTz(column ...string) ColumnDefinition
// String Create a new string column on the table.
String(column string, length ...int) ColumnDefinition
// Text Create a new text column on the table.
Text(column string) ColumnDefinition
// Time Create a new time column on the table.
Time(column string, precision ...int) ColumnDefinition
// TimeTz Create a new time column (with time zone) on the table.
TimeTz(column string, precision ...int) ColumnDefinition
// Timestamp Create a new time column on the table.
Timestamp(column string, precision ...int) ColumnDefinition
// Timestamps Add nullable creation and update timestamps to the table.
Timestamps(precision ...int)
// TimestampsTz Add creation and update timestampTz columns to the table.
TimestampsTz(precision ...int)
// TimestampTz Create a new time column (with time zone) on the table.
TimestampTz(column string, precision ...int) ColumnDefinition
// TinyIncrements Create a new auto-incrementing tiny integer (1-byte) column on the table.
TinyIncrements(column string) ColumnDefinition
// TinyInteger Create a new tiny integer (1-byte) column on the table.
TinyInteger(column string) ColumnDefinition
// TinyText Create a new tiny text column on the table.
TinyText(column string) ColumnDefinition
// ToSql Get the raw SQL statements for the blueprint.
ToSql(grammar Grammar) []string
// Unique Specify a unique index for the table.
Unique(column ...string) IndexDefinition
// UnsignedBigInteger Create a new unsigned big integer (8-byte) column on the table.
UnsignedBigInteger(column string) ColumnDefinition
// UnsignedInteger Create a new unsigned integer (4-byte) column on the table.
UnsignedInteger(column string) ColumnDefinition
// UnsignedMediumInteger Create a new unsigned medium integer (3-byte) column on the table.
UnsignedMediumInteger(column string) ColumnDefinition
// UnsignedSmallInteger Create a new unsigned small integer (2-byte) column on the table.
UnsignedSmallInteger(column string) ColumnDefinition
// UnsignedTinyInteger Create a new unsigned tiny integer (1-byte) column on the table.
UnsignedTinyInteger(column string) ColumnDefinition
}
type ColumnDefinition ¶
type ColumnDefinition interface {
// AutoIncrement set the column as auto increment
AutoIncrement() ColumnDefinition
// Comment sets the comment value
Comment(comment string) ColumnDefinition
// Default set the default value
Default(def any) ColumnDefinition
// GetAllowed returns the allowed value
GetAllowed() []any
// GetAutoIncrement returns the autoIncrement value
GetAutoIncrement() bool
// GetComment returns the comment value
GetComment() (comment string)
// GetDefault returns the default value
GetDefault() any
// GetLength returns the length value
GetLength() int
// GetName returns the name value
GetName() string
// GetNullable returns the nullable value
GetNullable() bool
// GetOnUpdate returns the onUpdate value
GetOnUpdate() any
// GetPlaces returns the places value
GetPlaces() int
// GetPrecision returns the precision value
GetPrecision() int
// GetTotal returns the total value
GetTotal() int
// GetType returns the type value
GetType() string
// GetUnsigned returns the unsigned value
GetUnsigned() bool
// GetUseCurrent returns the useCurrent value
GetUseCurrent() bool
// GetUseCurrentOnUpdate returns the useCurrentOnUpdate value
GetUseCurrentOnUpdate() bool
// IsSetComment returns true if the comment value is set
IsSetComment() bool
// OnUpdate sets the column to use the value on update (Mysql only)
OnUpdate(value any) ColumnDefinition
// Places set the decimal places
Places(places int) ColumnDefinition
// Total set the decimal total
Total(total int) ColumnDefinition
// Nullable allow NULL values to be inserted into the column
Nullable() ColumnDefinition
// Unsigned set the column as unsigned
Unsigned() ColumnDefinition
// UseCurrent set the column to use the current timestamp
UseCurrent() ColumnDefinition
// UseCurrentOnUpdate set the column to use the current timestamp on update (Mysql only)
UseCurrentOnUpdate() ColumnDefinition
}
type CommonSchema ¶
type Connection ¶
type Connection interface {
// Connection Get the connection for the migration.
Connection() string
}
type DBForeignKey ¶
type DriverSchema ¶
type DriverSchema interface {
// DropAllTables Drop all tables from the schema.
DropAllTables() error
// DropAllTypes Drop all types from the schema.
DropAllTypes() error
// DropAllViews Drop all views from the schema.
DropAllViews() error
// GetColumns Get the columns for a given table.
GetColumns(table string) ([]Column, error)
// GetIndexes Get the indexes for a given table.
GetIndexes(table string) ([]Index, error)
// GetTypes Get the types that belong to the database.
GetTypes() ([]Type, error)
}
type ForeignKey ¶
type ForeignKeyDefinition ¶
type ForeignKeyDefinition interface {
CascadeOnDelete() ForeignKeyDefinition
CascadeOnUpdate() ForeignKeyDefinition
On(table string) ForeignKeyDefinition
Name(name string) ForeignKeyDefinition
NoActionOnDelete() ForeignKeyDefinition
NoActionOnUpdate() ForeignKeyDefinition
NullOnDelete() ForeignKeyDefinition
References(columns ...string) ForeignKeyDefinition
RestrictOnDelete() ForeignKeyDefinition
RestrictOnUpdate() ForeignKeyDefinition
}
type Grammar ¶
type Grammar interface {
// CompileAdd Compile an add column command.
CompileAdd(blueprint Blueprint, command *Command) string
// CompileColumns Compile the query to determine the columns.
CompileColumns(schema, table string) string
// CompileComment Compile a column comment command.
CompileComment(blueprint Blueprint, command *Command) string
// CompileCreate Compile a create table command.
CompileCreate(blueprint Blueprint) string
// CompileDrop Compile a drop table command.
CompileDrop(blueprint Blueprint) string
// CompileDropAllDomains Compile the SQL needed to drop all domains.
CompileDropAllDomains(domains []string) string
// CompileDropAllTables Compile the SQL needed to drop all tables.
CompileDropAllTables(tables []string) string
// CompileDropAllTypes Compile the SQL needed to drop all types.
CompileDropAllTypes(types []string) string
// CompileDropAllViews Compile the SQL needed to drop all views.
CompileDropAllViews(views []string) string
// CompileDropColumn Compile a drop column command.
CompileDropColumn(blueprint Blueprint, command *Command) []string
// CompileDropForeign Compile a drop foreign key command.
CompileDropForeign(blueprint Blueprint, command *Command) string
// CompileDropFullText Compile a drop fulltext index command.
CompileDropFullText(blueprint Blueprint, command *Command) string
// CompileDropIfExists Compile a drop table (if exists) command.
CompileDropIfExists(blueprint Blueprint) string
// CompileDropIndex Compile a drop index command.
CompileDropIndex(blueprint Blueprint, command *Command) string
// CompileDropPrimary Compile a drop primary key command.
CompileDropPrimary(blueprint Blueprint, command *Command) string
// CompileDropUnique Compile a drop unique key command.
CompileDropUnique(blueprint Blueprint, command *Command) string
// CompileForeign Compile a foreign key command.
CompileForeign(blueprint Blueprint, command *Command) string
// CompileForeignKeys Compile the query to determine the foreign keys.
CompileForeignKeys(schema, table string) string
// CompileFullText Compile a fulltext index key command.
CompileFullText(blueprint Blueprint, command *Command) string
// CompileIndex Compile a plain index key command.
CompileIndex(blueprint Blueprint, command *Command) string
// CompileIndexes Compile the query to determine the indexes.
CompileIndexes(schema, table string) string
// CompilePrimary Compile a primary key command.
CompilePrimary(blueprint Blueprint, command *Command) string
// CompileRename Compile a rename table command.
CompileRename(blueprint Blueprint, command *Command) string
// CompileRenameIndex Compile a rename index command.
CompileRenameIndex(schema Schema, blueprint Blueprint, command *Command) []string
// CompileTables Compile the query to determine the tables.
CompileTables(database string) string
// CompileTypes Compile the query to determine the types.
CompileTypes() string
// CompileUnique Compile a unique key command.
CompileUnique(blueprint Blueprint, command *Command) string
// CompileViews Compile the query to determine the views.
CompileViews(database string) string
// GetAttributeCommands Get the commands for the schema build.
GetAttributeCommands() []string
// TypeBigInteger Create the column definition for a big integer type.
TypeBigInteger(column ColumnDefinition) string
// TypeBoolean Create the column definition for a boolean type.
TypeBoolean(column ColumnDefinition) string
// TypeChar Create the column definition for a char type.
TypeChar(column ColumnDefinition) string
// TypeDate Create the column definition for a date type.
TypeDate(column ColumnDefinition) string
// TypeDateTime Create the column definition for a date-time type.
TypeDateTime(column ColumnDefinition) string
// TypeDateTimeTz Create the column definition for a date-time (with time zone) type.
TypeDateTimeTz(column ColumnDefinition) string
// TypeDecimal Create the column definition for a decimal type.
TypeDecimal(column ColumnDefinition) string
// TypeDouble Create the column definition for a double type.
TypeDouble(column ColumnDefinition) string
// TypeEnum Create the column definition for an enumeration type.
TypeEnum(column ColumnDefinition) string
// TypeFloat Create the column definition for a float type.
TypeFloat(column ColumnDefinition) string
// TypeInteger Create the column definition for an integer type.
TypeInteger(column ColumnDefinition) string
// TypeJson Create the column definition for a json type.
TypeJson(column ColumnDefinition) string
// TypeJsonb Create the column definition for a jsonb type.
TypeJsonb(column ColumnDefinition) string
// TypeLongText Create the column definition for a long text type.
TypeLongText(column ColumnDefinition) string
// TypeMediumInteger Create the column definition for a medium integer type.
TypeMediumInteger(column ColumnDefinition) string
// TypeMediumText Create the column definition for a medium text type.
TypeMediumText(column ColumnDefinition) string
// TypeText Create the column definition for a text type.
TypeText(column ColumnDefinition) string
// TypeTime Create the column definition for a time type.
TypeTime(column ColumnDefinition) string
// TypeTimeTz Create the column definition for a time (with time zone) type.
TypeTimeTz(column ColumnDefinition) string
// TypeTimestamp Create the column definition for a timestamp type.
TypeTimestamp(column ColumnDefinition) string
// TypeTimestampTz Create the column definition for a timestamp (with time zone) type.
TypeTimestampTz(column ColumnDefinition) string
// TypeTinyInteger Create the column definition for a tiny integer type.
TypeTinyInteger(column ColumnDefinition) string
// TypeTinyText Create the column definition for a tiny text type.
TypeTinyText(column ColumnDefinition) string
// TypeSmallInteger Create the column definition for a small integer type.
TypeSmallInteger(column ColumnDefinition) string
// TypeString Create the column definition for a string type.
TypeString(column ColumnDefinition) string
}
type IndexConfig ¶
type IndexDefinition ¶
type IndexDefinition interface {
Algorithm(algorithm string) IndexDefinition
Deferrable() IndexDefinition
InitiallyImmediate() IndexDefinition
Language(name string) IndexDefinition
Name(name string) IndexDefinition
}
type Processor ¶
type Processor interface {
ProcessColumns(dbColumns []DBColumn) []Column
ProcessForeignKeys(dbIndexes []DBForeignKey) []ForeignKey
ProcessIndexes(dbIndexes []DBIndex) []Index
}
type Schema ¶
type Schema interface {
CommonSchema
DriverSchema
// Connection Get the connection for the schema.
Connection(name string) Schema
// Create a new table on the schema.
Create(table string, callback func(table Blueprint)) error
// Drop a table from the schema.
Drop(table string) error
// DropColumns Drop columns from a table on the schema.
DropColumns(table string, columns []string) error
// DropIfExists Drop a table from the schema if exists.
DropIfExists(table string) error
// GetColumnListing Get the column listing for a given table.
GetColumnListing(table string) []string
// GetConnection Get the connection of the schema.
GetConnection() string
// GetForeignKeys Get the foreign keys for a given table.
GetForeignKeys(table string) ([]ForeignKey, error)
// GetIndexListing Get the names of the indexes for a given table.
GetIndexListing(table string) []string
// GetTableListing Get the table listing for the database.
GetTableListing() []string
// HasColumn Determine if the given table has a given column.
HasColumn(table, column string) bool
// HasColumns Determine if the given table has given columns.
HasColumns(table string, columns []string) bool
// HasIndex Determine if the given table has a given index.
HasIndex(table, index string) bool
// HasTable Determine if the given table exists.
HasTable(name string) bool
// HasType Determine if the given type exists.
HasType(name string) bool
// HasView Determine if the given view exists.
HasView(name string) bool
// Migrations Get the migrations.
Migrations() []Migration
// Orm Get the orm instance.
Orm() orm.Orm
// Register migrations.
Register([]Migration)
// Rename a table on the schema.
Rename(from, to string) error
// SetConnection Set the connection of the schema.
SetConnection(name string)
// Sql Execute a sql directly.
Sql(sql string) error
// Table Modify a table on the schema.
Table(table string, callback func(table Blueprint)) error
}
Click to show internal directories.
Click to hide internal directories.