Database Migrations
affaan-m/ECC
Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL…
Step four of adding a syncable entity in the Twenty server: write create, update and delete action handlers that run workspace migrations against the database.
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .claude/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .claude/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .agents/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .agents/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .cursor/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .cursor/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/twentyhq/twenty.git --path .claude/skills/syncable-entity-runner-and-actions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .gemini/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .gemini/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .github/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .github/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install twentyhq/twenty syncable-entity-runner-and-actions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/syncable-entity-runner-and-actions .opencode/skills/syncable-entity-runner-and-actions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "syncable-entity-runner-and-actions" agent skill from https://github.com/twentyhq/twenty/tree/main/.claude/skills/syncable-entity-runner-and-actions into .opencode/skills/syncable-entity-runner-and-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "syncable-entity-runner-and-actions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
syncable-entity-runner-and-actionsStep four of adding a syncable entity in the Twenty server: write create, update and delete action handlers that run workspace migrations against the database.
Contributors to Twenty's own server code are the audience, not people building apps on top of Twenty. The skill describes the runner layer of workspace migrations: three action handler services per entity (create, update, delete), each with two phases, transpiling a universal action into a flat action and then executing the flat action as a database operation.
Handlers are NestJS injectable services using TypeORM repositories and live in the workspace-migration-runner action-handlers folder. Helpers include transpileUniversalActionToFlatAction, insertFlatEntitiesInRepository, executeForMetadata and executeForWorkspaceSchema, plus resolveUniversalUpdateRelationIdentifiersToIds for updates and a base-class transpilation helper for deletes. It assumes the earlier steps for types, cache and builder are finished and must come before integration.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5fcbee6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Twenty Entity Runner Actions loads about 3.1k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 253 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 253 words (~3,122 tokens).
“Purpose: Execute migration actions against the database with proper transpilation from universal to flat entities.”
Just SKILL.md in .claude/skills/syncable-entity-runner-and-actions of twentyhq/twenty.
Open the folder on GitHubat commit 5fcbee6
Twenty Entity Runner Actions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Twenty Entity Runner Actions this skilltwentyhq/twenty | 58k | — | ~3.1k | Automated safety check: Pass | Custom licence | |
| Database Migrationsaffaan-m/ECC | 275k | 4 repos | ~3k | Automated safety check: Pass | MIT | |
| Database Migrationsaffaan-m/ECC | 275k | 3 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Database Migrationsaffaan-m/ECC | 275k | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Safe Database Migration Patternsaffaan-m/ECC | 275k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Database Migrationsaffaan-m/ECC | 275k | — | ~335 | Automated safety check: Pass | MIT |
affaan-m/ECC
Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL…
affaan-m/ECC
数据库迁移最佳实践,涵盖模式变更、数据迁移、回滚以及零停机部署,适用于PostgreSQL、MySQL及常用ORM(Prisma、Drizzle、Django、TypeORM、golang-migrate)。
affaan-m/ECC
Şema değişiklikleri, veri migration'ları, rollback'ler ve PostgreSQL, MySQL ve yaygın ORM'ler (Prisma, Drizzle, Django, TypeORM, golang-migrate) arasında sıfır kesinti deployment'ları için…
affaan-m/ECC
Rules and examples for safe, reversible schema changes in production: zero-downtime column and index changes, large data backfills and ORM migration workflows.
affaan-m/ECC
PostgreSQL、MySQL、一般的なORM(Prisma、Drizzle、Kysely、Django、TypeORM、golang-migrate)全体のスキーマ変更、データマイグレーション、ロールバック、ゼロダウンタイムデプロイメントのためのデータベースマイグレーションベストプラクティス。
xu-xiang/everything-claude-code-zh
跨 PostgreSQL、MySQL 及常用 ORM(Prisma、Drizzle、Django、TypeORM、golang-migrate)的模式变更(schema changes)、数据迁移、回滚及零停机部署(zero-downtime deployments)的数据库迁移最佳实践。
twentyhq/twenty
Guides changes to an existing Twenty app: adding or editing objects, layouts, logic functions and front components, with a plan stated before multi-entity edits.
twentyhq/twenty
Operates an existing Twenty app: managing remotes, syncing, building, deploying, reading logs, running tests and setting up CI/CD, with confirmation for production.
twentyhq/twenty
Contributor guide for step three of adding a syncable entity to the Twenty server: write the validator, the migration action builder and the orchestrator wiring.
twentyhq/twenty
Walks through step 2 of adding a syncable entity to the Twenty server: a cache service for flat entity maps and utilities that transform entities and DTOs into universal flat entities.
twentyhq/twenty
Registers a new syncable entity in three NestJS modules and adds its service and GraphQL resolver layers when contributing to the Twenty server.
twentyhq/twenty
Step-by-step guide to writing the mandatory integration tests for syncable metadata entities in Twenty's server, covering failures and CRUD success cases.
Works with
Categories
Step four of adding a syncable entity in the Twenty server: write create, update and delete action handlers that run workspace migrations against the database. Contributors to Twenty's own server code are the audience, not people building apps on top of Twenty. The skill describes the runner layer of workspace migrations: three action handler services per entity (create, update, delete), each with two phases, transpiling a universal action into a flat action and then executing the flat action as a database operation.
Twenty Entity Runner Actions fits situations like: adding create, update or delete action handlers for a new syncable entity; converting universal actions into flat actions in the migration runner; executing metadata or workspace schema changes from the runner layer.
Run `npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a claude-code`. Or copy the skill folder (.claude/skills/syncable-entity-runner-and-actions in twentyhq/twenty) into .claude/skills/syncable-entity-runner-and-actions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a codex`. Or copy the skill folder (.claude/skills/syncable-entity-runner-and-actions in twentyhq/twenty) into .agents/skills/syncable-entity-runner-and-actions in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add twentyhq/twenty --skill syncable-entity-runner-and-actions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/syncable-entity-runner-and-actions, .gemini/skills/syncable-entity-runner-and-actions, .github/skills/syncable-entity-runner-and-actions and .opencode/skills/syncable-entity-runner-and-actions in your project.
SKILL.md names no scripts, command-line tools or credentials: Twenty Entity Runner Actions is instructions for the agent only. Our summary lists: A checkout of the twentyhq/twenty repository with the earlier syncable-entity steps finished.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Twenty Entity Runner Actions has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Twenty Entity Runner Actions: Database Migrations (affaan-m/ECC, 275k stars), Database Migrations (affaan-m/ECC, 275k stars), Database Migrations (affaan-m/ECC, 275k stars) and Safe Database Migration Patterns (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
twentyhq (a GitHub organization) maintains it in twentyhq/twenty, which has 58,056 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 8, 2026.
Source: twentyhq/twenty on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.