关于 database-migrations
database-migrations 是关于安全、可靠地管理数据库结构变更的实践指南,面向编写和维护迁移文件的开发者。内容涵盖迁移与回滚、索引及生产数据测试等做法。
主要功能
- 01按顺序组织迁移文件
- 02为变更编写回滚步骤
- 03新增列时创建索引
- 04使用事务保证变更原子性
- 05在生产环境并发创建索引
适用场景
- 01为数据库添加字段和索引
- 02创建新表并准备回滚方案
- 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;
最佳实践
- 始终包含回滚(down)迁移
- 切勿修改现有迁移,应创建新的迁移
- 在生产数据副本上测试迁移
- 使用事务确保变更的原子性
- 在生产环境中并发添加索引:
CREATE INDEX CONCURRENTLY
评论
支持 Markdown