Migration schema PostgreSQL không downtime
Skill hướng dẫn lập kế hoạch, kiểm thử và thực thi thay đổi schema PostgreSQL trên DB production mà không gây khóa bảng hay downtime.
Lập trìnhNâng cao★ 1,838⑂ 107Điểm AI 9/10Cập nhật lần cuối: 16 thg 9, 2026
Skill này làm gì
- Cung cấp bảng tra mức lock cho mọi lệnh DDL phổ biến, phân loại rõ lệnh chạy tức thì và lệnh phải rewrite/scan toàn bảng.
- Đưa ra mẫu SQL an toàn theo từng bước cho: thêm/xóa/đổi tên cột, đổi kiểu dữ liệu, thêm NOT NULL, FOREIGN KEY, UNIQUE, định nghĩa lại PRIMARY KEY.
- So sánh chiến lược
lock_timeout/statement_timeout, vòng lặp retry xử lý ngoại lệlock_not_available, vàLOCK TABLE ... NOWAIT. - Hướng dẫn backfill theo lô, truy vấn kiểm tra trước/sau migration, phân biệt thao tác có thể và không thể rollback, cùng quy trình diễn tập trên bản fork của database.
- Liệt kê 9 lỗi thường gặp: test trên bảng rỗng, quên
CONCURRENTLY, để lại index invalid, không theo dõi replication lag...
Phù hợp với ai
- Backend developer, DBA, platform engineer vận hành PostgreSQL với bảng hàng triệu dòng.
- Nhóm muốn review lại SQL do Rails/Django/Prisma sinh ra xem có an toàn cho production không.
- Tổ chức cần phối hợp deploy code và đổi schema để release không downtime.
Ví dụ sử dụng
- "Thêm
created_at TIMESTAMPTZ DEFAULT now()vào bảng orders có an toàn không?" → Skill chỉ ra default dạng volatile sẽ rewrite toàn bảng và viết lại thành: thêm cột nullable → backfill theo lô → SET DEFAULT rồi SET NOT NULL. - "Cần thêm index cho cột user_id trên bảng 10 triệu dòng" → Hướng dẫn
CREATE INDEX CONCURRENTLY, không đặt trong transaction, và cách kiểm trapg_index.indisvalidnếu build thất bại. - "Đổi cột amount từ INTEGER sang NUMERIC" → Đề xuất mẫu thêm cột mới + backfill + swap cột, kèm kế hoạch rollback và diễn tập trên fork trước khi chạy thật.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/timescale/pg-aiguide/HEAD/skills/postgres-database-migration/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/postgres-database-migration từ repo GitHub timescale/pg-aiguide vào ~/.claude/skills/postgres-database-migration/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/timescale/pg-aiguide.git && mkdir -p ~/.claude/skills && cp -r pg-aiguide/skills/postgres-database-migration ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal.
- Tạo thư mục skill:
mkdir -p ~/.claude/skills - Tải repo:
git clone https://github.com/timescale/pg-aiguide.git - Sao chép skill:
cp -r pg-aiguide/skills/postgres-database-migration ~/.claude/skills/ - Kiểm tra các file trong
references/(backfill-strategies.md, validation-queries.md, complete-example.md) đã được copy đầy đủ. - Khởi động lại Claude Code, rồi thử hỏi: "Thêm cột vào bảng production có bị lock không?" để skill tự kích hoạt.
- Luôn diễn tập trên bản backup hoặc fork trước khi áp dụng lên production.
Xem mã nguồn trên GitHub ↗Giấy phép: Apache-2.0