plugins/lisa-expo-agy/skills/ops-db-ops/SKILL.md
Database migrations, reverts, schema generation, and GraphQL codegen for Expo + serverless backend projects. Operates on the backend (TypeORM) and frontend (GraphQL code generation).
npx skillsauth add codyswanngt/lisa ops-db-opsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage database migrations, schema generation, and GraphQL code generation.
Argument: $ARGUMENTS — operation (migrate, revert, generate, schema, codegen) and optional environment (default: dev)
.)${BACKEND_DIR:-../backend-v2} — set BACKEND_DIR in .claude/settings.local.json if your backend is elsewhereCRITICAL: Never run migrations or reverts against production without explicit human confirmation.
Read the backend package.json to discover available migration and schema scripts:
migration:run:* — run pending migrationsmigration:revert:* — revert last migrationmigration:generate:* — generate new migration from entity changesmigration:create — create empty migrationgenerate:sql-schema* — regenerate SQL schema for MCPaws:signin:* and any environment-backed remote profileRead the frontend package.json to discover codegen scripts:
fetch:graphql:schema:* — fetch GraphQL schemagenerate:types:* — generate TypeScript typesAll database operations (except codegen) require AWS credentials. Verify the target profile first:
cd "${BACKEND_DIR:-../backend-v2}"
aws sts get-caller-identity --profile {aws-profile}
If this is an interactive local session and credentials are expired, refresh the backend's local AWS signin flow. In a headless or remote-routine session, use the preconfigured environment-backed assume-role profile and do not start an SSO browser/device flow.
Local database:
cd "${BACKEND_DIR:-../backend-v2}"
STAGE={env} bun run migration:run:local
Remote database:
cd "${BACKEND_DIR:-../backend-v2}"
STAGE={env} bun run migration:run:remote:local
Local database:
cd "${BACKEND_DIR:-../backend-v2}"
STAGE={env} bun run migration:revert:local
Remote database:
cd "${BACKEND_DIR:-../backend-v2}"
STAGE={env} bun run migration:revert:remote:local
cd "${BACKEND_DIR:-../backend-v2}"
NAME={migration_name} bun run migration:generate:{env}
cd "${BACKEND_DIR:-../backend-v2}"
NAME={migration_name} bun run migration:create
cd "${BACKEND_DIR:-../backend-v2}"
STAGE={env} bun run generate:sql-schema
Fetch schema:
bun run fetch:graphql:schema:{env}
Generate types:
bun run generate:types:{env}
Note: The backend must be running (locally or deployed) for schema fetching to work.
Report operation result:
| Operation | Environment | Target | Status | Details | |-----------|-------------|--------|--------|---------| | migrate | dev | local DB | SUCCESS | 2 migrations applied | | codegen | dev | frontend | SUCCESS | Types regenerated |
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.