db-migrator
Solid数据库迁移助手 - Schema 对比、迁移脚本生成
AI & Automation 686 stars
69 forks Updated 2 days ago MIT
Install
Quality Score: 90/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
- 3 months ago
- Last Updated
- 2 days ago
- Language
- Python
- License
- MIT
Integrates with
Similar Skills
Semantically similar based on skill content — not just same category
API & Backend Listed
cm-database-engineer
数据库工程师 Skill,执行数据模型设计、migration、查询优化,自动适配 ORM 和数据库类型
0 Updated today
kingxiaozhe API & Backend Listed
db-migration
Instructions for modifying the database schema and generating migrations.
0 Updated 6 days ago
syniol API & Backend Listed
database-migrations
Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments. Covers Alembic, Django, and raw SQL.
1 Updated today
Izangi2714