schema

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: May 16, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CheckConstraint added in v0.5.0

type CheckConstraint struct {
	// Name is the name of the check constraint in postgres
	Name string `json:"name"`

	// The columns that the check constraint is defined on
	Columns []string `json:"columns"`

	// The definition of the check constraint
	Definition string `json:"definition"`
}

type Column

type Column struct {
	// Name is the actual name in postgres
	Name string `json:"name"`

	// Column type
	Type string `json:"type"`

	Default  *string `json:"default"`
	Nullable bool    `json:"nullable"`
	Unique   bool    `json:"unique"`

	// Optional comment for the column
	Comment string `json:"comment"`
}

type ForeignKey added in v0.5.0

type ForeignKey struct {
	// Name is the name of the foreign key in postgres
	Name string `json:"name"`

	// The columns that the foreign key is defined on
	Columns []string `json:"columns"`

	// The table that the foreign key references
	ReferencedTable string `json:"referencedTable"`

	// The columns in the referenced table that the foreign key references
	ReferencedColumns []string `json:"referencedColumns"`

	// The ON DELETE behavior of the foreign key
	OnDelete string `json:"onDelete"`
}

type Index

type Index struct {
	// Name is the name of the index in postgres
	Name string `json:"name"`

	// Unique indicates whether or not the index is unique
	Unique bool `json:"unique"`

	// Columns is the set of key columns on which the index is defined
	Columns []string `json:"columns"`
}

type Schema

type Schema struct {
	// Name is the name of the schema
	Name string `json:"name"`
	// Tables is a map of virtual table name -> table mapping
	Tables map[string]Table `json:"tables"`
}

func New

func New() *Schema

func (*Schema) AddTable

func (s *Schema) AddTable(name string, t Table)

func (*Schema) GetTable

func (s *Schema) GetTable(name string) *Table

func (*Schema) RemoveTable

func (s *Schema) RemoveTable(name string)

func (*Schema) RenameTable

func (s *Schema) RenameTable(from, to string) error

func (*Schema) Scan

func (s *Schema) Scan(value interface{}) error

Make the Schema struct implement the sql.Scanner interface. This method simply decodes a JSON-encoded value into the struct fields.

func (Schema) Value

func (s Schema) Value() (driver.Value, error)

Make the Schema struct implement the driver.Valuer interface. This method simply returns the JSON-encoded representation of the struct.

type Table

type Table struct {
	// OID for the table
	OID string `json:"oid"`

	// Name is the actual name in postgres
	Name string `json:"name"`

	// Optional comment for the table
	Comment string `json:"comment"`

	// Columns is a map of virtual column name -> column mapping
	Columns map[string]Column `json:"columns"`

	// Indexes is a map of the indexes defined on the table
	Indexes map[string]Index `json:"indexes"`

	// The columns that make up the primary key
	PrimaryKey []string `json:"primaryKey"`

	// ForeignKeys is a map of all foreign keys defined on the table
	ForeignKeys map[string]ForeignKey `json:"foreignKeys"`

	// CheckConstraints is a map of all check constraints defined on the table
	CheckConstraints map[string]CheckConstraint `json:"checkConstraints"`

	// UniqueConstraints is a map of all unique constraints defined on the table
	UniqueConstraints map[string]UniqueConstraint `json:"uniqueConstraints"`
}

func (*Table) AddColumn

func (t *Table) AddColumn(name string, c Column)

func (*Table) ConstraintExists added in v0.5.0

func (t *Table) ConstraintExists(name string) bool

func (*Table) GetColumn

func (t *Table) GetColumn(name string) *Column

func (*Table) GetPrimaryKey added in v0.2.0

func (t *Table) GetPrimaryKey() (columns []*Column)

func (*Table) RemoveColumn

func (t *Table) RemoveColumn(column string)

func (*Table) RenameColumn

func (t *Table) RenameColumn(from, to string)

type UniqueConstraint added in v0.5.0

type UniqueConstraint struct {
	// Name is the name of the unique constraint in postgres
	Name string `json:"name"`

	// The columns that the unique constraint is defined on
	Columns []string `json:"columns"`
}

Jump to

Keyboard shortcuts

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