Documentation
¶
Index ¶
- type CheckConstraint
- type Column
- type ForeignKey
- type Index
- type Schema
- type Table
- func (t *Table) AddColumn(name string, c Column)
- func (t *Table) ConstraintExists(name string) bool
- func (t *Table) GetColumn(name string) *Column
- func (t *Table) GetConstraintColumns(name string) []string
- func (t *Table) GetPrimaryKey() (columns []*Column)
- func (t *Table) PhysicalColumnNamesFor(columnNames ...string) []string
- func (t *Table) RemoveColumn(column string)
- func (t *Table) RenameColumn(from, to string)
- type UniqueConstraint
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"`
}
CheckConstraint represents a check constraint on a table
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"`
// Will contain possible enum values if the type is an enum
EnumValues []string `json:"enumValues"`
}
Column represents a column in a table
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"`
}
ForeignKey represents a foreign key on a table
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"`
// Predicate is the optional predicate for the index
Predicate *string `json:"predicate,omitempty"`
// Method is the method for the index
Method string `json:"method,omitempty"`
// Definition is statement to construct the index
Definition string `json:"definition"`
}
Index represents an index on a table
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"`
}
Schema represents a database schema
func (*Schema) RemoveTable ¶
RemoveTable removes a table from the schema
func (*Schema) RenameTable ¶
RenameTable renames a table in the schema
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"`
}
Table represents a table in the schema
func (*Table) ConstraintExists ¶ added in v0.5.0
ConstraintExists returns true if a constraint with the given name exists
func (*Table) GetConstraintColumns ¶ added in v0.8.0
GetConstraintColumns gets the columns associated with the given constraint. It may return a nil slice if the constraint does not exist.
func (*Table) GetPrimaryKey ¶ added in v0.2.0
GetPrimaryKey returns the columns that make up the primary key
func (*Table) PhysicalColumnNamesFor ¶ added in v0.8.0
PhysicalColumnNamesFor returns the physical column names for the given virtual column names
func (*Table) RemoveColumn ¶
RemoveColumn removes a column from the table
func (*Table) RenameColumn ¶
RenameColumn renames a column in the table
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"`
}
UniqueConstraint represents a unique constraint on a table