From dev-assistant
/etendo:update — Synchronize database with the model
npx claudepluginhub etendosoftware/etendo_claude_marketplace --plugin dev-assistantThis skill uses the workspace's default tool permissions.
**Arguments:** `$ARGUMENTS` (optional: `full` for update + smartbuild, `threads=N` for parallel)
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
Arguments: $ARGUMENTS (optional: full for update + smartbuild, threads=N for parallel)
First, read skills/etendo-_guidelines/SKILL.md and skills/etendo-_context/SKILL.md.
For Gradle task details, flags, and dependency chains, read references/gradle-tasks-reference.md.
update.database applies changes from the Application Dictionary (XML sourcedata) and module definitions into the live PostgreSQL database. Run this after:
# Docker
docker ps --filter name=etendo-db-1 --format "{{.Status}}"
# Local
psql -U {bbdd.user} -d {bbdd.sid} -h localhost -p {bbdd.port} -c "SELECT 1;" 2>&1
If DB is not reachable:
./gradlew resources.up or docker start etendo-db-1Redirect output to
/tmp. Read only on failure.
# Detect JAVA_HOME (must be Java 17):
JAVA_HOME=$(/usr/libexec/java_home -v 17 2>/dev/null || echo "$JAVA_HOME")
# Standard
JAVA_HOME=${JAVA_HOME} ./gradlew update.database > /tmp/etendo-update-database.log 2>&1
# With parallelism (faster for large schemas)
JAVA_HOME=${JAVA_HOME} ./gradlew update.database -Dmax.threads={N} > /tmp/etendo-update-database.log 2>&1
Check result:
tail -5 /tmp/etendo-update-database.log
Column size change rejected: Some column size changes require manual SQL first:
ALTER TABLE {tablename} ALTER COLUMN {columnname} TYPE VARCHAR({newsize});
Then re-run update.database.
Function/trigger errors:
# Check recent DB errors
docker exec etendo-db-1 psql -U {bbdd.user} -d {bbdd.sid} -c \
"SELECT message, updated FROM ad_errorlog ORDER BY updated DESC LIMIT 10;"
"Table already exists" -- usually harmless if update.database was interrupted mid-run. Re-run to continue.
If $ARGUMENTS contains full or after successful update:
+ update.database complete
Next steps depending on what changed:
- New columns added -> run /etendo:smartbuild (includes generate.entities)
- Only AD data changed -> run /etendo:smartbuild to redeploy
- Module added -> run /etendo:smartbuild -Plocal=no