Claude Skill MartKhám phá skillCâu dùng ngayHọc qua videoDùng terminalSkill là gì?
← Về danh sách

Quy trình Migration Cloudflare D1

Skill hướng dẫn tạo, kiểm tra và áp dụng migration Cloudflare D1 bằng Drizzle, kèm cách cứu migration bị treo.

Lập trìnhTrung cấp★ 1,034⑂ 105Điểm AI 8/10Cập nhật lần cuối: 29 thg 9, 2026

Giúp được gì

  • Nhắc luôn đọc file SQL trước khi apply, phát hiện mẫu nguy hiểm mà Drizzle sinh ra khi bạn đổi giá trị default (tạo bảng mới → INSERT SELECT → DROP → RENAME) và thay bằng một câu ALTER TABLE ADD COLUMN đơn giản.
  • Cung cấp thứ tự apply cho cả local (--local) và remote (--remote), cùng lệnh kiểm chứng bằng PRAGMA table_info.
  • Chẩn đoán và sửa migration "bị treo" (cột đã thêm nhưng chưa được ghi nhận) bằng cách truy vấn và chèn thủ công vào bảng d1_migrations.
  • Tránh lỗi im lặng khi INSERT nhiều dòng do giới hạn tham số của D1 (~100–150 tham số) bằng cách chia lô.
  • Quy ước đặt tên (camelCase trong schema Drizzle, snake_case trong SQL thuần) và trình tự dựng project mới: deploy Worker → tạo D1 → gắn database_id → deploy lại → chạy migration.

Dành cho ai

  • Dev dùng Cloudflare Workers + D1 + Drizzle ORM.
  • Người từng gặp lỗi "chạy tốt ở local nhưng lỗi ở production" vì schema lệch nhau.
  • Người muốn Claude Code tự chạy và gỡ lỗi migration.

Ví dụ sử dụng

  1. "Migration thêm cột bị lỗi khi apply" → chỉ ra mẫu tạo lại bảng trong SQL và sửa thành ALTER TABLE ... ADD COLUMN.
  2. "db:migrate cứ lỗi ở migration tưởng như đã xong" → dùng PRAGMA table_info và SELECT * FROM d1_migrations để chẩn đoán, ghi nhận thủ công rồi chạy tiếp.
  3. "Chèn 500 dòng seed nhưng thất bại không báo lỗi" → chuyển sang vòng lặp chia lô BATCH_SIZE = 10.

· · · 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/jezweb/claude-skills/HEAD/archive/plugins/cloudflare/skills/d1-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)
  1. Tải tệp ZIP bằng nút bên dưới.
  2. Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
  3. Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
↓ Tải ZIP
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 archive/plugins/cloudflare/skills/d1-migration từ repo GitHub jezweb/claude-skills vào ~/.claude/skills/jezweb-d1-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/jezweb/claude-skills.git && mkdir -p ~/.claude/skills/d1-migration && cp -r claude-skills/archive/plugins/cloudflare/skills/d1-migration/* ~/.claude/skills/d1-migration/

⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.

  1. Mở terminal và clone repo: git clone https://github.com/jezweb/claude-skills.git
  2. Tạo thư mục skill: mkdir -p ~/.claude/skills/d1-migration
  3. Copy nội dung: cp -r claude-skills/archive/plugins/cloudflare/skills/d1-migration/* ~/.claude/skills/d1-migration/
  4. Kiểm tra công cụ cần thiết trong project: npx wrangler --version (và cấu hình Drizzle nếu có).
  5. Khởi động lại Claude Code, rồi yêu cầu ví dụ: "tạo migration D1 và apply cho cả local lẫn remote".
  6. Lưu ý: lệnh có --remote tác động trực tiếp lên database production, nên hãy thử ở local trước.