Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Templates embed.FS
Functions ¶
func FillAliases ¶
FillAliases takes the table information from the driver and fills in aliases where the user has provided none.
This leaves us with a complete list of Go names for all tables, columns, and relationships.
Types ¶
type Aliases ¶
type Aliases struct {
Tables map[string]TableAlias `toml:"tables,omitempty" json:"tables,omitempty"`
}
Aliases defines aliases for the generation run
func ConvertAliases ¶
func ConvertAliases(i interface{}) Aliases
ConvertAliases is necessary because viper
It also supports two different syntaxes, because of viper:
[aliases.tables.table_name] fields... = "values" [aliases.tables.columns] colname = "alias" [aliases.tables.relationships.fkey_name] local = "x" foreign = "y"
Or alternatively (when toml key names or viper's lowercasing of key names gets in the way):
[[aliases.tables]] name = "table_name" fields... = "values" [[aliases.tables.columns]] name = "colname" alias = "alias" [[aliases.tables.relationships]] name = "fkey_name" local = "x" foreign = "y"
func (Aliases) Table ¶
func (a Aliases) Table(table string) TableAlias
Table gets a table alias, panics if not found.
type Config ¶
type Config[T any] struct { Driver drivers.Interface[T] `toml:"driver,omitempty" json:"driver,omitempty"` PkgName string `toml:"pkg_name,omitempty" json:"pkg_name,omitempty"` OutFolder string `toml:"out_folder,omitempty" json:"out_folder,omitempty"` Tags []string `toml:"tags,omitempty" json:"tags,omitempty"` NoTests bool `toml:"no_tests,omitempty" json:"no_tests,omitempty"` NoBackReferencing bool `toml:"no_back_reference,omitempty" json:"no_back_reference,omitempty"` Wipe bool `toml:"wipe,omitempty" json:"wipe,omitempty"` StructTagCasing string `toml:"struct_tag_casing,omitempty" json:"struct_tag_casing,omitempty"` RelationTag string `toml:"relation_tag,omitempty" json:"relation_tag,omitempty"` TagIgnore []string `toml:"tag_ignore,omitempty" json:"tag_ignore,omitempty"` Templates []fs.FS `toml:"-" json:"-"` CustomTemplateFuncs template.FuncMap `toml:"-" json:"-"` Aliases Aliases `toml:"aliases,omitempty" json:"aliases,omitempty"` TypeReplaces []TypeReplace `toml:"type_replaces,omitempty" json:"type_replaces,omitempty"` Inflections Inflections `toml:"inflections,omitempty" json:"inflections,omitempty"` Generator string `toml:"generator" json:"generator"` }
Config for the running of the commands
func (*Config[T]) OutputDirDepth ¶
OutputDirDepth returns depth of output directory
type Importer ¶
type Importer map[string]struct{}
type Inflections ¶
type RelationshipAlias ¶
type RelationshipAlias struct {
Local string `toml:"local,omitempty" json:"local,omitempty"`
Foreign string `toml:"foreign,omitempty" json:"foreign,omitempty"`
}
RelationshipAlias defines the naming for both sides of a foreign key.
type State ¶
type State[T any] struct { Config *Config[T] Dialect string Schema string Tables []drivers.Table ExtraInfo T Templates *templateList TestTemplates *templateList }
State holds the global data needed by most pieces to run
type TableAlias ¶
type TableAlias struct {
UpPlural string `toml:"up_plural,omitempty" json:"up_plural,omitempty"`
UpSingular string `toml:"up_singular,omitempty" json:"up_singular,omitempty"`
DownPlural string `toml:"down_plural,omitempty" json:"down_plural,omitempty"`
DownSingular string `toml:"down_singular,omitempty" json:"down_singular,omitempty"`
Columns map[string]string `toml:"columns,omitempty" json:"columns,omitempty"`
Relationships map[string]string `toml:"relationships,omitempty" json:"relationships,omitempty"`
}
TableAlias defines the spellings for a table name in Go
func (TableAlias) Column ¶
func (t TableAlias) Column(column string) string
Column get's a column's aliased name, panics if not found.
func (TableAlias) Relationship ¶
func (t TableAlias) Relationship(fkey string) string
Relationship looks up a relationship, panics if not found.
type TypeReplace ¶
type TypeReplace struct {
Tables []string `toml:"tables,omitempty" json:"tables,omitempty"`
Match drivers.Column `toml:"match,omitempty" json:"match,omitempty"`
Replace drivers.Column `toml:"replace,omitempty" json:"replace,omitempty"`
}
TypeReplace replaces a column type with something else
func ConvertTypeReplace ¶
func ConvertTypeReplace(i interface{}) []TypeReplace
ConvertTypeReplace is necessary because viper
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package drivers talks to various database backends and retrieves table, column, type, and foreign key information
|
Package drivers talks to various database backends and retrieves table, column, type, and foreign key information |
|
Package importers helps with dynamic imports for templating
|
Package importers helps with dynamic imports for templating |