Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cfg ¶
type Cfg struct {
Models []MultiModelCfg `json:"models" yaml:"models"`
}
type ColumnData ¶
ColumnData describes the columns of table
func (*ColumnData) Convert ¶
func (c *ColumnData) Convert() (*Table, error)
Convert converts column data into Table
type DbColumn ¶
type DbColumn struct {
Name string `db:"COLUMN_NAME"`
DataType string `db:"DATA_TYPE"`
Extra string `db:"EXTRA"`
Comment string `db:"COLUMN_COMMENT"`
ColumnDefault interface{} `db:"COLUMN_DEFAULT"`
IsNullAble string `db:"IS_NULLABLE"`
OrdinalPosition int `db:"ORDINAL_POSITION"`
}
DbColumn defines column info of columns
type DbIndex ¶
type DbIndex struct {
IndexName string `db:"INDEX_NAME"`
NonUnique int `db:"NON_UNIQUE"`
SeqInIndex int `db:"SEQ_IN_INDEX"`
}
DbIndex defines index of columns in information_schema.statistic
type InformationSchemaModel ¶
type InformationSchemaModel struct {
// contains filtered or unexported fields
}
InformationSchemaModel defines information schema model
func NewInformationSchemaModel ¶
func NewInformationSchemaModel(conn sqlx.SqlConn) *InformationSchemaModel
NewInformationSchemaModel creates an instance for InformationSchemaModel
func (*InformationSchemaModel) FindColumns ¶
func (m *InformationSchemaModel) FindColumns(db, table string) (*ColumnData, error)
FindColumns return columns in specified database and table
func (*InformationSchemaModel) FindIndex ¶
func (m *InformationSchemaModel) FindIndex(db, table, column string) ([]*DbIndex, error)
FindIndex finds index with given db, table and column.
func (*InformationSchemaModel) GetAllTables ¶
func (m *InformationSchemaModel) GetAllTables(database string) ([]*DBTable, error)
GetAllTables selects all tables from TABLE_SCHEMA
type MultiModelCfg ¶ added in v1.0.3
type MultiModelCfg struct {
Table string `json:"table" yaml:"table"`
Group string `json:"group" yaml:"group"`
Package string `json:"package" yaml:"package"`
AliasPackage string `json:"aliasPackage" yaml:"aliasPackage"`
Fields []string `json:"fields" yaml:"fields"`
Excludes []string `json:"excludes" yaml:"excludes"`
Joins []MultiModelJoinCfg `json:"joins" yaml:"joins"`
}
func NewMultiModelCfg ¶ added in v1.0.3
func NewMultiModelCfg(filename string) ([]MultiModelCfg, error)
type MultiModelJoinCfg ¶ added in v1.0.3
type MultiModelJoinCfg struct {
Table string `json:"table" yaml:"table"`
Group string `json:"group" yaml:"group"`
Alias string `json:"alias" yaml:"alias"`
JoinType string `json:"joinType" yaml:"joinType"`
Package string `json:"package" yaml:"package"`
AliasPackage string `json:"aliasPackage" yaml:"aliasPackage"`
ForeignKey string `json:"foreignKey" yaml:"foreignKey"`
References string `json:"references" yaml:"references"`
Fields []string `json:"fields" yaml:"fields"`
Excludes []string `json:"excludes" yaml:"excludes"`
}
type Table ¶
type Table struct {
Db string
Table string
Comment string
Columns []*Column
// Primary key not included
UniqueIndex map[string][]*Column
PrimaryKey *Column
NormalIndex map[string][]*Column
MultiModelCfg MultiModelCfg
}
Table describes mysql table which contains database name, table name, columns, keys
Click to show internal directories.
Click to hide internal directories.