Token导航 LogoToken导航TokenDH.com
运维和基础设施敏感数据github未标认证来源可访问clear审计异常

db-migrations-and-schema-changes数据库迁移和架构更改

Agent Skill

db-migrations-and-schema-changes 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

10,061

周安装

435

GitHub Stars

21,802

下载量

4,124
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:db-migrations-and-schema-changes(数据库迁移和架构更改)
来源仓库:https://github.com/letta-ai/letta
仓库路径:skills/db-migrations-and-schema-changes
安装命令:
npx skills add https://github.com/letta-ai/letta --skill 'DB migrations and schema changes'
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/letta-ai/letta --skill 'DB migrations and schema changes'

简介

该技能用于在 letta-cloud 应用中管理 Alembic 数据库迁移与 schema 变更。

  • 适用于 apps/core 目录下的 ORM 调整及迁移生成,依赖 uv 运行 alembic 工具。
  • 使用前需设置 LETTA_PG_URI 环境变量指向 Postgres 实例,确保本地数据库就绪。
  • 禁止直接执行非 DBHub MCP 路径的 SQL 操作,避免绕过企业安全管控机制。
  • db-migrations-and-schema-changes 属于运维和基础设施类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

DB migrations and schema changes (letta-cloud core)

Use this skill whenever you need to change the database schema or debug Alembic migrations in apps/core of the letta-cloud repo.

This skill assumes:

  • Working directory: apps/core
  • Migrations: Alembic in apps/core/alembic
  • Python runner: uv
  • Helper: just ready for environment + DB setup

Quick start

  1. Ensure environment is ready:

- just ready

  1. For Postgres migrations, set:

- export LETTA_PG_URI=postgresql+pg8000://postgres:postgres@localhost:5432/letta-core

  1. Make your ORM/schema change.
  2. Autogenerate migration:

- uv run alembic revision --autogenerate -m "<short_message>"

  1. Apply migration:

- uv run alembic upgrade head

See references/migration-commands.md for exact commands and variants.

Standard workflows

1. Add or modify a column (ORM-first)

  1. Identify the ORM model and table.
  2. Update the SQLAlchemy model in letta/orm/...:

- Prefer using mixins (e.g. ProjectMixin) when available instead of duplicating columns.

  1. Run just ready if dependencies or environment may have changed.
  2. Ensure LETTA_PG_URI is set if you want the migration to target Postgres.
  3. Autogenerate Alembic revision with uv.
  4. Inspect the generated file under alembic/versions/:

- Confirm op.add_column / op.alter_column match expectations.

  1. Apply migrations with uv run alembic upgrade head.

Use this pattern for changes like adding project_id columns via ProjectMixin.

2. Data backfill / one-off data migration

  1. Make sure the schema change (if any) is already represented in ORM + Alembic.
  2. Create a new Alembic revision without autogenerate (or edit an autogen file) and add Python logic in upgrade() that:

- Uses op.get_bind() and SQLAlchemy Core/SQL to backfill data.

  1. Keep downgrade() simple and safe (ideally reversible).
  2. Run against Postgres with LETTA_PG_URI set, using uv run alembic upgrade head.

3. Fixing a bad migration

Typical cases:

  • Migration fails only on SQLite (ALTER constraint limitations).
  • Migration was generated while pointing at SQLite instead of Postgres.

Workflow:

  1. Identify the failing revision in alembic/versions/.
  2. If failure is SQLite-specific, prefer running migrations against Postgres by exporting LETTA_PG_URI and re-running upgrade.
  3. If logic is wrong, create a new migration that fixes the problem rather than editing an applied revision (especially in shared environments).
  4. For purely local/dev history, you can delete and regenerate migrations but only if no one else depends on them.

See references/sqlite-vs-postgres-gotchas.md for SQLite-specific issues.

4. Switching between SQLite and Postgres

Alembic picks the engine based on letta.settings.DatabaseChoice and environment variables.

General rules:

  • For local dev stateful runs, just ready handles baseline migrations.
  • For schema design and production-like migrations, prefer Postgres and set LETTA_PG_URI.

Workflow for Postgres-targeted migration:

  1. export LETTA_PG_URI=postgresql+pg8000://postgres:postgres@localhost:5432/letta-core
  2. From apps/core:

- uv run alembic upgrade head - uv run alembic revision --autogenerate -m "..."

5. Resetting local Postgres for clean migration generation

If your local Postgres database has drifted from main (e.g., applied migrations that no longer exist, or has stale schema), you can reset it to generate a clean migration.

From the repo root (/Users/sarahwooders/repos/letta-cloud):

# 1. Remove postgres data directory
rm -rf ./data/postgres

# 2. Stop the running postgres container
docker stop $(docker ps -q --filter ancestor=ankane/pgvector)

# 3. Restart services (creates fresh postgres)
just start-services

# 4. Wait a moment for postgres to be ready, then apply all migrations
cd apps/core
export LETTA_PG_URI=postgresql+pg8000://postgres:postgres@localhost:5432/letta-core
uv run alembic upgrade head

# 5. Now generate your new migration
uv run alembic revision --autogenerate -m "your migration message"

This ensures the migration is generated against a clean database state matching main, avoiding spurious diffs from local-only schema changes.

Troubleshooting

  • "Target database is not up to date" when autogenerating

- First run uv run alembic upgrade head (with appropriate engine/URI).

  • SQLite NotImplementedError about ALTER CONSTRAINT

- Switch to Postgres by setting LETTA_PG_URI and rerun.

  • Autogenerated migration missing expected changes

- Ensure ORM imports and metadata (Base.metadata) are correct and that the changed model is imported in Alembic env context.

  • Autogenerated migration has unexpected drops/renames

- Review model changes; consider explicit operations instead of relying on autogenerate. Reset local Postgres (see workflow 5) to get a clean baseline.

References

  • references/migration-commands.md — canonical commands for uv, Alembic, and just.
  • references/sqlite-vs-postgres-gotchas.md — engine-specific pitfalls and how to avoid them.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.11%
按下载量换算1,118

windsurf

24.12%
按下载量换算995

Cursor

16.76%
按下载量换算691

Codex

11.29%
按下载量换算466

OpenCode

7.01%
按下载量换算289

Antigravity

3.4%
按下载量换算140

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。来源字段存在多来源差异,先按来源优先级自动处理,无法消解时进入异常复核队列。

来源信息

继续浏览同类 Skills