mcpField
D
database-migrations

database-migrations

github.com/langchain-ai数据与数据库11960 次安装10 周前更新
代码仓库

关于 database-migrations

database-migrations 是关于安全、可靠地管理数据库结构变更的实践指南,面向编写和维护迁移文件的开发者。内容涵盖迁移与回滚、索引及生产数据测试等做法。

主要功能

  1. 01按顺序组织迁移文件
  2. 02为变更编写回滚步骤
  3. 03新增列时创建索引
  4. 04使用事务保证变更原子性
  5. 05在生产环境并发创建索引

适用场景

  1. 01为数据库添加字段和索引
  2. 02创建新表并准备回滚方案
  3. 03在部署前用生产数据副本测试迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/langchain-ai/skills-benchmarks --skill database-migrations

安装后在 Claude Code 中输入/database-migrations确认已加载。

详细介绍

数据库迁移模式

安全可靠地管理数据库架构变更。

迁移文件结构

migrations/
  001_create_users.sql
  002_add_email_index.sql
  003_create_orders.sql

编写安全的迁移

添加列
-- migrations/004_add_user_status.sql
-- Up
ALTER TABLE users ADD COLUMN status VARCHAR(20) DEFAULT 'active';
CREATE INDEX idx_users_status ON users(status);

-- Down
DROP INDEX idx_users_status;
ALTER TABLE users DROP COLUMN status;
创建表
-- migrations/005_create_audit_log.sql
-- Up
CREATE TABLE audit_log (
    id SERIAL PRIMARY KEY,
    table_name VARCHAR(100) NOT NULL,
    record_id INTEGER NOT NULL,
    action VARCHAR(20) NOT NULL,
    changed_by INTEGER REFERENCES users(id),
    changed_at TIMESTAMP DEFAULT NOW(),
    old_values JSONB,
    new_values JSONB
);

CREATE INDEX idx_audit_log_table ON audit_log(table_name, record_id);
CREATE INDEX idx_audit_log_time ON audit_log(changed_at);

-- Down
DROP TABLE audit_log;

最佳实践

  1. 始终包含回滚(down)迁移
  2. 切勿修改现有迁移,应创建新的迁移
  3. 在生产数据副本上测试迁移
  4. 使用事务确保变更的原子性
  5. 在生产环境中并发添加索引:CREATE INDEX CONCURRENTLY

评论

支持 Markdown