Ezorm Write Yaml (MySQL/MySQLr)
Scope
Write ezorm YAML schemas from user requirements for mysql/mysqlr and emit YAML only. Prefer mysqlr unless the user explicitly requests mysql. Read these files when schema details or examples are needed:
- •
doc/schema/yaml.md - •
doc/schema/yaml_mysql.md - •
doc/schema/yaml_mysqlr.md - •
e2e/mysql/*.yaml - •
e2e/mysqlr/*.yamlIf the localreferences/orassets/directories are missing, run:scripts/init.sh(orscripts/init.sh --forceto refresh). Validate withscripts/validate.sh.
Workflow
- •Restate the domain model in simple entities and relationships. Ask one clarification only if critical (missing entities, relationship direction, or required constraints).
- •Choose db driver:
- •Use
db: mysqlfor classic mysql schemas (seedoc/schema/yaml_mysql.md). - •Use
db: mysqlrfor mysqlr schemas (seedoc/schema/yaml_mysqlr.md).
- •Use
- •Map fields:
- •Use mysql/mysqlr field types from the matching doc.
- •Add
flagslikeindex,unique,nullable,primary,autoinc,noincas needed. - •Use
fkonly when an explicit foreign key is requested.
- •Set table metadata:
- •Always include
dbname. - •Use
tablefor mysql,dbtablefor mysqlr. - •Default table names to snake_case of the entity name unless the user provides one.
- •Always include
- •Add constraints:
- •Use
indexes,uniques,primaryas required.
- •Use
- •Output only YAML (no Go code, no prose). Use
---to separate multiple entities.
Output Rules
- •Emit a valid YAML schema file (or multiple YAML documents) and nothing else.
- •Keep names consistent with user domain language.
- •Prefer minimal fields; do not invent behavior.