تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
التطوير والاختبار

Knex.js SQL Query Builder

بناء استعلامات SQL برمجياً مع Knex.js، مع واجهة برمجية سلسة وترحيلات وبذر لقواعد بيانات متعددة.

Claude Code Codex Copilot Cursor Gemini CLI Windsurf

نظرة عامة

Knex.js هو بانٍ لاستعلامات SQL لـ Node.js يوفر واجهة برمجية سلسة وقابلة للتسلسل لبناء الاستعلامات عبر PostgreSQL و MySQL و SQLite و MSSQL. على عكس الـ ORM الكامل، يمنحك Knex تحكماً مباشراً في SQL مع توفير واجهة JavaScript مريحة. يستطيع وكيل الذكاء الاصطناعي كتابة استعلامات معقدة وإدارة الترحيلات وبذر قواعد البيانات باستخدام صياغة Knex التعبيرية.

يمكن لوكيل الذكاء الاصطناعي إنشاء استعلامات Knex للضمّ والاستعلامات الفرعية والتجميعات ودوال النوافذ و CTEs. يمكنه إنشاء ملفات ترحيل تُعدّل الجداول وتضيف الفهارس وتتعامل مع تغييرات المخطط بأمان. يتتبع نظام الترحيل الترحيلات التي تم تشغيلها، مما يتيح تطور قاعدة البيانات بشكل موثوق عبر البيئات. كما يوفر Knex نظام بذر لملء قواعد البيانات ببيانات الاختبار أو البيانات الأولية.

يُستخدم Knex غالباً كطبقة استعلام تحت أطر عمل عالية المستوى مثل Objection.js. للمشاريع التي تحتاج تحكماً أكثر مما يوفره ORM ولكن أماناً أكثر من سلاسل SQL الخام، يُعدّ Knex النقطة المثالية. يمكن لوكيل الذكاء الاصطناعي تهيئة تجمع الاتصالات، وإعداد المعاملات، وكتابة استعلامات آمنة النوع عند دمجها مع TypeScript.

لمن هذه الأداة؟

  • مطوري الـ Backend اللي بيكتبوا استعلامات SQL معقدة بواجهة JavaScript سلسة
  • الفرق اللي بتدير ترحيلات قواعد البيانات عبر بيئات التطوير والتجهيز والإنتاج
  • المطورين اللي بيبنوا طبقات وصول بيانات مخصصة من غير حمل ORM كامل
  • المهندسين اللي بيبذروا قواعد البيانات ببيانات اختبار لبيئات التطوير و CI

التثبيت

إعداد Claude Code
npm install knex pg
npx knex init
Claude Code generates queries, migrations, and seeds

الإعدادات

// knexfile.ts
import type { Knex } from "knex";
const config: Record<string, Knex.Config> = {
  development: {
    client: "pg",
    connection: { host: "localhost", port: 5432, user: "dev", password: "dev", database: "myapp" },
    migrations: { directory: "./migrations" },
    seeds: { directory: "./seeds" },
  },
};
export default config;