Tooluck logoTooluck
SKILL.md

db-migrator

Agent skill fromlaolaoshiren/claude-code-skills-zh

数据库迁移助手 - Schema 对比、迁移脚本生成

How to install db-migrator

install db-migrator
# install the claude-code-skills-zh pack with the skills CLI
npx skills add laolaoshiren/claude-code-skills-zh

# or add only this skill to Claude Code: copy the folder

skills/db-migrator/

# into

~/.claude/skills/db-migrator/ (all projects)

.claude/skills/db-migrator/ (one project)

skills/db-migrator/SKILL.md

MITFull file
1# 数据库迁移助手
2
3## 触发条件
4当用户要求数据库迁移、生成 migration、schema 变更、数据库升级时激活此技能。
5
6## 工作流程
7
8### 第 1 步:识别框架
9扫描项目文件,判断使用的 ORM/迁移框架:
10- `alembic.ini` / `alembic/` → Alembic
11- `prisma/schema.prisma` → Prisma
12- `pom.xml` 含 flyway → Flyway
13- `manage.py` + `settings.py` → Django
14- `Gemfile` + `db/migrate/` → Rails
15
16### 第 2 步:分析 Schema 变更
17- 对比 models 定义与现有迁移历史
18- 识别新增/修改/删除的表和字段
19- 检测索引、约束、外键变更
20
21### 第 3 步:生成迁移脚本
22根据框架生成对应的迁移文件,并同时生成回滚脚本。
23
24### 第 4 步:风险评估
25- 大表 DDL 变更(锁表风险)
26- 数据迁移需求
27- 向后兼容性
28
29## 迁移模板
30
31### Alembic (Python)
32```python
33"""add email column to users
34
35Revision ID: abc123
36"""
37from alembic import op
38import sqlalchemy as sa
39
40def upgrade():
41 op.add_column('users', sa.Column('email', sa.String(255), nullable=True))
42 op.create_index('ix_users_email', 'users', ['email'], unique=True)
43
44def downgrade():
45 op.drop_index('ix_users_email')
46 op.drop_column('users', 'email')
47```
48
49### Flyway (Java)
50```sql
51-- V2__add_email_to_users.sql
52ALTER TABLE users ADD COLUMN email VARCHAR(255);
53CREATE UNIQUE INDEX ix_users_email ON users(email);
54
55-- 回滚脚本 (单独文件 U2__rollback_add_email.sql)
56-- 逆向操作
57```
58
59### Prisma (Node.js)
60```prisma
61// schema.prisma 变更
62model User {
63 id Int @id @default(autoincrement())
64 name String
65 email String? @unique // 新增字段
66}
67```
68```bash
69# 默认仅生成迁移,不执行数据库变更
70npx prisma migrate dev --name add-email-to-users --create-only
71```
72
73检查生成的 SQL、连接目标和备份后,再由用户确认执行:
74
75```bash
76# 开发环境应用迁移
77npx prisma migrate dev
78
79# 生产环境应用已审核并提交的迁移
80npx prisma migrate deploy
81```
82
83### Django (Python)
84```python
85…

Excerpt shown under the repository's MIT license.

More skills in claude-code-skills-zh

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates