أصعب ما في قاعدة البيانات أن تغيّر بنيتها وهي تخدم مستخدمين فعليين. لذلك جمعتُ ثلاثة أوامر مخصّصة (slash commands) لـ Claude Code تغطي عمر الجدول: تصميمه، ثم تعديله بترحيل يمكن التراجع عنه، ثم تسريع استعلاماته حين تكبر البيانات. كل أمر ملف Markdown من عشر مراحل، مع أمثلة كود لـ PostgreSQL وNode.js.
هذه الأوامر تعمل داخل Claude Code، ولا توجد منها نسخة لـ Codex. وفي claude.ai يمكنك لصق نص الملف في محادثة مع وصف جداولك، لكن Claude هناك لا يصل إلى ملفات مشروعك.
ما يطلبه كل أمر من Claude
- design-database-schema: ينطلق من متطلبات النشاط إلى الكيانات والعلاقات، ويعرض مخططين: إدارة المستخدمين والأدوار، ومتجرًا بمنتجاته وطلباته. ثم يعرض أنماطًا مثل سجل تدقيق (audit trail) تملؤه دالة trigger، والحذف المنطقي، والتقسيم (partitioning)، وأعمدة JSONB، وأمان مستوى الصف (Row Level Security)، ويختم باختبارات SQL تتأكد أن القيود ترفض البيانات الخاطئة.
- create-database-migrations: يخطط لترحيل لا يوقف الخدمة، ويقترح مدير ترحيلات بـ Node.js يسجّل كل ترحيل في جدول schema_migrations مع بصمته ونص التراجع، ويمنع تشغيل ترحيلين معًا. ويضيف فحوصًا قبل الإنتاج لأقفال الجداول وحجم البيانات والنسخة الاحتياطية ونافذة الصيانة، وسطر أوامر فيه up وdown وstatus وcreate، وسير عمل GitHub Actions يختبر الترحيلات قبل نشرها.
- optimize-database-performance: يقرأ خطط التنفيذ بـ EXPLAIN ANALYZE في PostgreSQL وEXPLAIN FORMAT=JSON في MySQL، ويستخرج أبطأ الاستعلامات من pg_stat_statements. ثم يقترح فهارس مركّبة وجزئية، ومجمّع اتصالات، وتخزينًا مؤقتًا في Redis، وتوزيع القراءة على نسخ متماثلة (read replicas)، وصيانة VACUUM مجدولة، ودالة تكرر الاستعلام مئة مرة وتعيد متوسط زمنه.
مثال من ملف الترحيل: أعمدة لتأكيد البريد
في ملف create-database-migrations مثال يضيف إلى جدول users رمز تأكيد البريد وتاريخ انتهائه وعدد المحاولات. قسم Up يضيف الأعمدة ويبني فهرسًا للبحث بالرمز، ويشترط بقيدٍ أن يوجد الرمز وتاريخ انتهائه معًا أو يغيبا معًا؛ وقسم Down يحذف ذلك كله. استدعِ /commands-database-operations:create-database-migrations وصِف التغيير الذي تريده، والمنتظر بحسب الملف ترحيل بالبنية نفسها لجداولك.
التشغيل في Claude Code
- فكّ ضغط الملف في مجلد ثابت، ثم شغّل
claude --plugin-dirمتبوعًا بالمسار الكامل لمجلد plugin؛ هذا تحميل للجلسة الحالية فقط، وتظهر فيه الأوامر مسبوقة باسم الإضافة. - لتبقى متاحة في كل جلسة داخل مشروعك، انسخ الملفات الثلاثة من plugin/commands إلى .claude/commands فيه، واستدعها بأسمائها القصيرة مثل
/optimize-database-performance.
قبل أن تقترب من قاعدة الإنتاج
- يلزمك Claude Code مثبتًا ومسجّل الدخول، وتُحتسب تكلفة النموذج على حسابك. وإن لم تكن قاعدتك PostgreSQL فاذكر نوعها صراحة.
- يأذن ملف الترحيل لـ Claude بتشغيل أوامر npm وتعديل الملفات، وملف الأداء بكتابة الملفات، دون استئذانك في كل مرة، فراجع كل تغيير قبل اعتماده.
- اختبارات الترحيل تحذف قاعدة الاختبار وتعيد إنشاءها، فاجعل TEST_DB_NAME اسم قاعدة مؤقتة.
- مدير الترحيلات المقترح يشغّل كل ترحيل داخل معاملة، ومثال البريد يستخدم CREATE INDEX CONCURRENTLY الذي يرفضه PostgreSQL داخل معاملة؛ فاطلب تشغيل هذا الفهرس خارج المعاملة.
- مثال الأداء يفعّل تسجيل كل الاستعلامات عبر ALTER SYSTEM، وهو إعداد يبقى بعد إعادة التشغيل؛ فراجعه قبل تنفيذه. وتستخدم استعلامات pg_stat_statements فيه mean_time وtotal_time، واسماهما منذ PostgreSQL 13 هما mean_exec_time وtotal_exec_time.
أعددتُ لها دليلًا عربيًا بخطوات التشغيل، وفهرسًا بمسار كل ملف. كتب الأوامر مجتمع BuildWithClaude ونشرها davepoon بترخيص MIT، وتصلك بنصها الإنجليزي دون تعديل.



