Documentation ¶
Index ¶
- Variables
- func BoolAttr(k string, v bool) *schemahcl.Attr
- func Check(spec *sqlspec.Check) (*schema.Check, error)
- func Column(spec *sqlspec.Column, conv ConvertTypeFunc) (*schema.Column, error)
- func ColumnByRef(t *schema.Table, ref *schemahcl.Ref) (*schema.Column, error)
- func ColumnRef(cName string) *schemahcl.Ref
- func ConvertGenExpr(r *schemahcl.Resource, c *schema.Column, t func(string) string) error
- func FromCheck(s *schema.Check) *sqlspec.Check
- func FromColumn(col *schema.Column, columnTypeSpec ColumnTypeSpecFunc) (*sqlspec.Column, error)
- func FromForeignKey(s *schema.ForeignKey) (*sqlspec.ForeignKey, error)
- func FromGenExpr(x schema.GeneratedExpr, t func(string) string) *schemahcl.Resource
- func FromIndex(idx *schema.Index, partFns ...func(*schema.IndexPart, *sqlspec.IndexPart)) (*sqlspec.Index, error)
- func FromPrimaryKey(s *schema.Index) (*sqlspec.PrimaryKey, error)
- func FromSchema(s *schema.Schema, fn TableSpecFunc) (*sqlspec.Schema, []*sqlspec.Table, error)
- func FromTable(t *schema.Table, colFn ColumnSpecFunc, pkFn PrimaryKeySpecFunc, ...) (*sqlspec.Table, error)
- func FromVar(s string) string
- func HCLBytesFunc(ev schemahcl.Evaluator) func(b []byte, v any, inp map[string]string) error
- func Index(spec *sqlspec.Index, parent *schema.Table, ...) (*schema.Index, error)
- func Int64Attr(k string, v int64) *schemahcl.Attr
- func IntAttr(k string, v int) *schemahcl.Attr
- func ListAttr(k string, litValues ...string) *schemahcl.Attr
- func LitAttr(k, v string) *schemahcl.Attr
- func Marshal(v any, marshaler schemahcl.Marshaler, ...) ([]byte, error)
- func PrimaryKey(spec *sqlspec.PrimaryKey, parent *schema.Table) (*schema.Index, error)
- func QualifyDuplicates(tableSpecs []*sqlspec.Table) error
- func QualifyReferences(tableSpecs []*sqlspec.Table, realm *schema.Realm) error
- func RawAttr(k, v string) *schemahcl.Attr
- func RefAttr(k string, r *schemahcl.Ref) *schemahcl.Attr
- func Scan(r *schema.Realm, schemas []*sqlspec.Schema, tables []*sqlspec.Table, ...) error
- func SchemaName(ref *schemahcl.Ref) (string, error)
- func SchemaRef(n string) *schemahcl.Ref
- func StrAttr(k, v string) *schemahcl.Attr
- func Table(spec *sqlspec.Table, parent *schema.Schema, convertColumn ConvertColumnFunc, ...) (*schema.Table, error)
- func Var(s string) string
- func VarAttr(k, v string) *schemahcl.Attr
- type Attrer
- type CheckSpecFunc
- type ColumnSpecFunc
- type ColumnTypeSpecFunc
- type ConvertCheckFunc
- type ConvertColumnFunc
- type ConvertIndexFunc
- type ConvertPrimaryKeyFunc
- type ConvertTableFunc
- type ConvertTypeFunc
- type ForeignKeySpecFunc
- type IndexSpecFunc
- type PrimaryKeySpecFunc
- type TableSpecFunc
Constants ¶
This section is empty.
Variables ¶
var ReferenceVars = []string{ Var(string(schema.NoAction)), Var(string(schema.Restrict)), Var(string(schema.Cascade)), Var(string(schema.SetNull)), Var(string(schema.SetDefault)), }
ReferenceVars holds the HCL variables for foreign keys' referential-actions.
Functions ¶
func BoolAttr ¶ added in v0.3.0
BoolAttr is a helper method for constructing *schemahcl.Attr of type bool.
func ColumnByRef ¶ added in v0.3.8
ColumnByRef returns a column from the table by its reference.
func ConvertGenExpr ¶ added in v0.3.8
ConvertGenExpr converts the "as" attribute or the block under the given resource.
func FromColumn ¶ added in v0.2.0
FromColumn converts a *schema.Column into a *sqlspec.Column using the ColumnTypeSpecFunc.
func FromForeignKey ¶
func FromForeignKey(s *schema.ForeignKey) (*sqlspec.ForeignKey, error)
FromForeignKey converts schema.ForeignKey to sqlspec.ForeignKey.
func FromGenExpr ¶ added in v0.3.8
FromGenExpr returns the spec for a generated expression.
func FromIndex ¶
func FromIndex(idx *schema.Index, partFns ...func(*schema.IndexPart, *sqlspec.IndexPart)) (*sqlspec.Index, error)
FromIndex converts schema.Index to sqlspec.Index.
func FromPrimaryKey ¶
func FromPrimaryKey(s *schema.Index) (*sqlspec.PrimaryKey, error)
FromPrimaryKey converts schema.Index to a sqlspec.PrimaryKey.
func FromSchema ¶
FromSchema converts a schema.Schema into sqlspec.Schema and []sqlspec.Table.
func FromTable ¶
func FromTable(t *schema.Table, colFn ColumnSpecFunc, pkFn PrimaryKeySpecFunc, idxFn IndexSpecFunc, fkFn ForeignKeySpecFunc, ckFn CheckSpecFunc) (*sqlspec.Table, error)
FromTable converts a schema.Table to a sqlspec.Table.
func HCLBytesFunc ¶ added in v0.4.3
HCLBytesFunc returns a helper that evaluates an HCL document from a byte slice instead of from an hclparse.Parser instance.
func Index ¶
func Index(spec *sqlspec.Index, parent *schema.Table, partFns ...func(*sqlspec.IndexPart, *schema.IndexPart) error) (*schema.Index, error)
Index converts a sqlspec.Index to a schema.Index. The optional arguments allow passing functions for mutating the created index-part (e.g. add attributes).
func Int64Attr ¶ added in v0.3.5
Int64Attr is a helper method for constructing *schemahcl.Attr with the numeric value of v.
func IntAttr ¶ added in v0.3.8
IntAttr is a helper method for constructing *schemahcl.Attr with the numeric value of v.
func ListAttr ¶
ListAttr is a helper method for constructing *schemahcl.Attr instances that contain list values.
func LitAttr ¶
LitAttr is a helper method for constructing *schemahcl.Attr instances that contain literal values.
func Marshal ¶ added in v0.2.0
func Marshal(v any, marshaler schemahcl.Marshaler, schemaSpec func(schem *schema.Schema) (*sqlspec.Schema, []*sqlspec.Table, error)) ([]byte, error)
Marshal marshals v into an Atlas DDL document using a schemahcl.Marshaler. Marshal uses the given schemaSpec function to convert a *schema.Schema into *sqlspec.Schema and []*sqlspec.Table.
func PrimaryKey ¶
PrimaryKey converts a sqlspec.PrimaryKey to a schema.Index.
func QualifyDuplicates ¶ added in v0.3.8
QualifyDuplicates sets the Qualified field equal to the schema name in any tables with duplicate names in the provided table specs.
func QualifyReferences ¶ added in v0.6.2
QualifyReferences qualifies any reference with qualifier.
func RawAttr ¶ added in v0.3.2
RawAttr is a helper method for constructing *schemahcl.Attr instances that contain sql expressions.
func RefAttr ¶ added in v0.3.8
RefAttr is a helper method for constructing *schemahcl.Attr instances that contain a reference.
func Scan ¶ added in v0.3.8
func Scan(r *schema.Realm, schemas []*sqlspec.Schema, tables []*sqlspec.Table, convertTable ConvertTableFunc) error
Scan populates the Realm from the schemas and table specs.
func SchemaName ¶ added in v0.3.1
SchemaName returns the name from a ref to a schema.
func SchemaRef ¶ added in v0.3.1
SchemaRef returns the schemahcl.Ref to the schema with the given name.
func StrAttr ¶ added in v0.2.0
StrAttr is a helper method for constructing *schemahcl.Attr of type string.
func Table ¶
func Table(spec *sqlspec.Table, parent *schema.Schema, convertColumn ConvertColumnFunc, convertPK ConvertPrimaryKeyFunc, convertIndex ConvertIndexFunc, convertCheck ConvertCheckFunc) (*schema.Table, error)
Table converts a sqlspec.Table to a schema.Table. Table conversion is done without converting ForeignKeySpecs into ForeignKeys, as the target tables do not necessarily exist in the schema at this point. Instead, the linking is done by the Schema function.
Types ¶
type CheckSpecFunc ¶ added in v0.3.0
List of convert function types.
type ColumnSpecFunc ¶
List of convert function types.
type ColumnTypeSpecFunc ¶ added in v0.2.0
List of convert function types.
type ConvertCheckFunc ¶ added in v0.3.0
List of convert function types.
type ConvertColumnFunc ¶
List of convert function types.
type ConvertIndexFunc ¶
List of convert function types.
type ConvertPrimaryKeyFunc ¶
List of convert function types.
type ConvertTableFunc ¶
List of convert function types.
type ConvertTypeFunc ¶
List of convert function types.
type ForeignKeySpecFunc ¶
type ForeignKeySpecFunc func(*schema.ForeignKey) (*sqlspec.ForeignKey, error)
List of convert function types.
type IndexSpecFunc ¶
List of convert function types.
type PrimaryKeySpecFunc ¶
type PrimaryKeySpecFunc func(*schema.Index) (*sqlspec.PrimaryKey, error)
List of convert function types.