schema

package
v1.25.0 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2020 License: MIT Imports: 5 Imported by: 10

Documentation

Index

Constants

View Source
const (
	FOREIGN_KEY = "FOREIGN KEY"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Column

type Column struct {
	Name            string         `json:"name"`
	Type            string         `json:"type"`
	Nullable        bool           `json:"nullable"`
	Default         sql.NullString `json:"default"`
	Comment         string         `json:"comment"`
	ParentRelations []*Relation    `json:"-"`
	ChildRelations  []*Relation    `json:"-"`
}

Column is the struct for table column

func (Column) MarshalJSON added in v1.6.0

func (c Column) MarshalJSON() ([]byte, error)

MarshalJSON return custom JSON byte

func (*Column) UnmarshalJSON added in v1.6.0

func (c *Column) UnmarshalJSON(data []byte) error

UnmarshalJSON ...

type Constraint added in v0.2.2

type Constraint struct {
	Name             string   `json:"name"`
	Type             string   `json:"type"`
	Def              string   `json:"def"`
	Table            *string  `json:"table"`
	ReferenceTable   *string  `json:"reference_table"`
	Columns          []string `json:"columns"`
	ReferenceColumns []string `json:"reference_columns"`
}

Constraint is the struct for database constraint

type Driver added in v1.6.0

type Driver struct {
	Name            string `json:"name"`
	DatabaseVersion string `json:"database_version"`
}

Driver is the struct for tbls driver information

type Index

type Index struct {
	Name    string   `json:"name"`
	Def     string   `json:"def"`
	Table   *string  `json:"table"`
	Columns []string `json:"columns"`
}

Index is the struct for database index

type Relation

type Relation struct {
	Table         *Table    `json:"table"`
	Columns       []*Column `json:"columns"`
	ParentTable   *Table    `json:"parent_table"`
	ParentColumns []*Column `json:"parent_columns"`
	Def           string    `json:"def"`
	IsAdditional  bool      `json:"is_additional"`
}

Relation is the struct for table relation

type Schema

type Schema struct {
	Name      string      `json:"name"`
	Tables    []*Table    `json:"tables"`
	Relations []*Relation `json:"relations"`
	Driver    *Driver     `json:"driver"`
}

Schema is the struct for database schema

func (*Schema) FindTableByName

func (s *Schema) FindTableByName(name string) (*Table, error)

FindTableByName find table by table name

func (*Schema) Repair added in v1.6.0

func (s *Schema) Repair() error

Repair column relations

func (*Schema) Sort added in v0.2.0

func (s *Schema) Sort() error

Sort schema tables, columns, relations, and constrains

type Table

type Table struct {
	Name        string        `json:"name"`
	Type        string        `json:"type"`
	Comment     string        `json:"comment"`
	Columns     []*Column     `json:"columns"`
	Indexes     []*Index      `json:"indexes"`
	Constraints []*Constraint `json:"constraints"`
	Triggers    []*Trigger    `json:"triggers"`
	Def         string        `json:"def"`
}

Table is the struct for database table

func (*Table) FindColumnByName

func (t *Table) FindColumnByName(name string) (*Column, error)

FindColumnByName find column by column name

type Trigger added in v1.0.0

type Trigger struct {
	Name string `json:"name"`
	Def  string `json:"def"`
}

Trigger is the struct for database trigger

Jump to

Keyboard shortcuts

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