tbls: github.com/k1LoW/tbls/schema Index | Files

package schema

import "github.com/k1LoW/tbls/schema"

Index

Package Files

schema.go

Constants

const (
    FOREIGN_KEY = "FOREIGN KEY"
)

type Column Uses

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 Uses

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

MarshalJSON return custom JSON byte

func (*Column) UnmarshalJSON Uses

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

UnmarshalJSON ...

type Constraint Uses

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 Uses

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

Driver is the struct for tbls driver information

type Index Uses

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 Uses

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 Uses

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 Uses

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

FindTableByName find table by table name

func (*Schema) Repair Uses

func (s *Schema) Repair() error

Repair column relations

func (*Schema) Sort Uses

func (s *Schema) Sort() error

Sort schema tables, columns, relations, and constrains

type Table Uses

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 Uses

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

FindColumnByName find column by column name

type Trigger Uses

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

Trigger is the struct for database trigger

Package schema imports 5 packages (graph) and is imported by 17 packages. Updated 2019-11-05. Refresh now. Tools for package owners.