Field commands define data types, constraints and form presentation. For example, add text, a status and a unique article address:
admingen-cli --path ./docs-demo field add Article body --type text --required
admingen-cli --path ./docs-demo field add Article status --type enum --enum draft,published --required
admingen-cli --path ./docs-demo field add Article slug --type string --required --unique
field is shorthand for entity field; both forms change the same model. Review the plan after editing: uniqueness, a type change and relationship settings can affect existing data.
Choose a type and required status
string is suitable for a short string and text for longer text. int and int64 store integers; float stores fractional numbers with the usual floating-point limitations. bool is true/false, UUID is an identifier, date is a calendar day, and datetime is a point in time.
Enum limits the set of values. JSON stores a JSON value, but does not create an arbitrary typed form. image and gallery have separate settings.
--required makes a value required; --nullable allows storing null. These are different properties. With supported autogeneration, the database or a value generator supplies the identifier. The required/default/autogeneration settings must be consistent rather than all enabled at once.
Change a single property
admingen-cli --path ./docs-demo field update Article body --title "Текст статьи"
admingen-cli --path ./docs-demo field update Article slug --readonly=true
admingen-cli --path ./docs-demo field update Article slug --readonly=false
Update changes only the supplied properties. Use =false to disable a boolean parameter. An empty string can clear a setting that supports clearing, provided the resulting model remains valid.
A regular update/new-name does not rename a persisted field. Use Rename with preview and revisions. Deleting and recreating a field is not the same as renaming it while preserving data.
How parameters affect the interface and API
hidden hides a field in the interface; readonly restricts editing an existing record. Neither replaces server permissions. --ui-component and --ui-width select a supported presentation, but do not insert arbitrary React code.
sortable, filterable and searchable correspond to List behavior. After Generate, supported server-side sorting, typed filters and search become available. The client uses sort/order, filters and searches according to the API contract. This does not introduce arbitrary new query parameters. Settings incompatible with the type are rejected.
Commands and parameters
| Command | Invocation |
|---|---|
field |
admingen-cli field [command] |
field add |
admingen-cli field add <entity-name> <field-name> [flags] |
field delete |
admingen-cli field delete <entity-name> <field-name> [flags] |
field update |
admingen-cli field update <entity-name> <field-name> [flags] |
Global parameters are covered in CLI basics. Replace names in angle brackets with your own. Defaults belong to command help: update does not reset omitted properties.
| Parameter | Used by | Default | Meaning |
|---|---|---|---|
--auto-generate VALUE |
field add, field update |
empty string | PK generation: uuid or identity; check compatibility with the field type. |
--default VALUE |
field add, field update |
empty string | String representation of a default value. Does not guarantee automatic filling of every omitted API field. |
--description VALUE |
field add, field update |
empty string | An explanation of the field's purpose. |
--enum VALUE |
field add, field update |
empty list | Unique allowed values, for example draft,published; order is preserved. |
--filterable |
field add, field update |
false | Enable typed server filters for a supported field. |
--hidden |
field add, field update |
false | Hide the field in the generated interface; this is not an API security policy. |
--image-settings VALUE |
field add, field update |
empty string | Image/gallery settings JSON; null explicitly clears settings if the resulting model permits it. |
--indexed |
field add, field update |
false | Request an index for the field. |
--nullable |
field add, field update |
false | Allow null within the type/relationship rules. |
--primary-key |
field add, field update |
false | Make the field the entity's primary key. |
--readonly |
field add, field update |
false | Restrict changing an existing value in the generated form; Create has separate behavior. |
--relation-foreign-key VALUE |
field add, field update |
empty string | FK field for the field's inline relationship definition. |
--relation-target VALUE |
field add, field update |
empty string | Target entity name for a reference field. |
--relation-type VALUE |
field add, field update |
empty string | Type of the field's inline relationship definition. |
--required |
field add, field update |
false | Make the value required according to model and form rules. |
--searchable |
field add, field update |
false | Enable server search for a supported string/text field. |
--sortable |
field add, field update |
false | Enable server list sorting for a supported field. |
--title VALUE |
field add, field update |
empty string | A human-readable project or field title. |
--type VALUE |
field add, field update |
empty string | For a field, a supported data type; for a relation, belongsTo, hasMany or manyToMany. |
--ui-component VALUE |
field add, field update |
empty string | Supported field presentation. This parameter does not inject an arbitrary React component. |
--ui-width VALUE |
field add, field update |
empty string | A positive integer pixel count as a string, for example 240. |
--unique |
field add, field update |
false | Request unique values. |
--new-name VALUE |
field update |
empty string | A new name where the command supports it. A regular update does not rename a persisted field: use Rename. |
Markdown and images
admingen-cli --path ./docs-demo field update Article body --ui-component markdown
admingen-cli --path ./docs-demo field update Article title --ui-width 320 --searchable --sortable --filterable
admingen-cli --path ./docs-demo field add Article cover --type image --nullable \
--image-settings '{"profile":"cover","formats":["jpeg","png","webp"],"quality":85,"output":"auto","sizes":[{"name":"sm","width":320},{"name":"lg","width":1600}]}'
Markdown changes how text is displayed, not its SQL type. Supported string/text options include textarea/password/email/url; an empty component selects Default.
--image-settings accepts strict JSON: an unknown key causes an error. Gallery also supports maxCount. The avatar profile specifies a square and cover specifies16:9. A positive aspect overrides the proportions; profile: custom with aspect: 0 preserves the original proportions.
Do not confuse accepted input formats with output: output accepts auto/jpeg/png. Size creation and file processing are described in images.
If the field has already been generated
After the first successful generation, the storage type is fixed. To transform data, create a new field and a custom migration. Title, Description and Presentation can change independently of the storage type.
Deleting a regular generated column requires field delete ... --confirm-data-loss. Protected identifiers cannot be replaced this way. See renaming and deletion.