Core DevPre-alpha
Field types
Models embed sdk.Model and use typed field markers. Schema is inferred at registration from Go types and sumeru struct tags.
Scalar and relational types
| Go type | PostgreSQL | Notes |
|---|---|---|
sdk.String | VARCHAR (default 255) | size= for length |
sdk.Text | TEXT | |
sdk.Boolean | BOOLEAN | |
sdk.Integer | BIGINT | |
sdk.Float | REAL | 32-bit |
sdk.Float64 | DOUBLE PRECISION | 64-bit |
sdk.Numeric | NUMERIC(p,s) | precision=, scale= |
sdk.Date | DATE | |
sdk.DateTime | TIMESTAMPTZ | |
sdk.Json | JSONB | |
sdk.Many2One[T] | BIGINT | FK; comodel= when using sdk.Any |
sdk.One2Many[T] | *(no column)* | inverse relation |
sdk.Many2Many[T] | *(no column)* | table=, left=, right= |
Selection fields use sdk.String with selection=key:Label,... in the tag.
Common struct tags
required, unique, index, default=, string= (label), column=, comodel=, selection=
Registration
Generated models/zmodels.go calls sdk.MustRegister on make generate. Authors do not write Fields() or init() registration.