db-migrator
Featured数据库迁移助手 - Schema 对比、迁移脚本生成
AI & Automation 835 stars
88 forks Updated yesterday MIT
Install
Quality Score: 91/100
Stars 20%
Recency 20%
Frontmatter 20%
Documentation 15%
Issue Health 10%
License 10%
Description 5%
Skill Content
# 数据库迁移助手
## 触发条件
当用户要求数据库迁移、生成 migration、schema 变更、数据库升级时激活此技能。
## 工作流程
### 第 1 步:识别框架
扫描项目文件,判断使用的 ORM/迁移框架:
- `alembic.ini` / `alembic/` → Alembic
- `prisma/schema.prisma` → Prisma
- `pom.xml` 含 flyway → Flyway
- `manage.py` + `settings.py` → Django
- `Gemfile` + `db/migrate/` → Rails
### 第 2 步:分析 Schema 变更
- 对比 models 定义与现有迁移历史
- 识别新增/修改/删除的表和字段
- 检测索引、约束、外键变更
### 第 3 步:生成迁移脚本
根据框架生成对应的迁移文件,并同时生成回滚脚本。
### 第 4 步:风险评估
- 大表 DDL 变更(锁表风险)
- 数据迁移需求
- 向后兼容性
## 迁移模板
### Alembic (Python)
```python
"""add email column to users
Revision ID: abc123
"""
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('users', sa.Column('email', sa.String(255), nullable=True))
op.create_index('ix_users_email', 'users', ['email'], unique=True)
def downgrade():
op.drop_index('ix_users_email')
op.drop_column('users', 'email')
```
### Flyway (Java)
```sql
-- V2__add_email_to_users.sql
ALTER TABLE users ADD COLUMN email VARCHAR(255);
CREATE UNIQUE INDEX ix_users_email ON users(email);
-- 回滚脚本 (单独文件 U2__rollback_add_email.sql)
-- 逆向操作
```
### Prisma (Node.js)
```prisma
// schema.prisma 变更
model User {
id Int @id @default(autoincrement())
name String
email String? @unique // 新增字段
}
```
```bash
# 默认仅生成迁移,不执行数据库变更
npx prisma migrate dev --name add-email-to-users --create-only
```
检查生成的 SQL、连接目标和备份后,再由用户确认执行:
```bash
# 开发环境应用迁移
npx prisma migrate dev
# 生产环境应用已审核并提交的迁移
npx prisma migrate deploy
```
### Django (Python)
```python
# users/m...
Details
- Author
- laolaoshiren
- Repository
- laolaoshiren/claude-code-skills-zh
- Created
- 5 months ago
- Last Updated
- yesterday
- Language
- Python
- License
- MIT
Integrates with
Similar Skills
Semantically similar based on skill content — not just same category
AI & Automation Listed
data-migration
数据库迁移脚本生成与管理
0 Updated 1 months ago
chengxuniucode API & Backend Listed
cm-database-engineer
数据库工程师 Skill,执行数据模型设计、migration、查询优化,自动适配 ORM 和数据库类型
2 Updated yesterday
kingxiaozhe API & Backend Solid
database-migration
Create, execute, and roll back versioned database schema migrations using tools like Alembic, Prisma Migrate, Flyway, and Knex. Use when the user requests database migration or provides relevant inputs for this workflow.
179 Updated 1 months ago
seb1n