إعادة تسمية الأعمدة دون توقف
أضف عمودًا جديدًا، واكتب في العمودين، واملأ البيانات السابقة، وحوّل عمليات القراءة، ثم احذف القديم — النمط القياسي لإعادة التسمية دون توقف
إعادة تسمية الأعمدة دون توقف درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
يفشل النهج الساذج
يقتصر ALTER TABLE t RENAME COLUMN a TO b; على البيانات الوصفية، ولذلك فهو سريع. لكن التطبيق يتوقع العمود a، وبعد إعادة التسمية سيفشل كل استعلام يقرأ العمود a.
الاستراتيجية: التوسيع ← الترحيل ← التقليص
النمط المعتمد لتحقيق عدم التوقف:
- التوسيع — إضافة العمود الجديد دون إزالة القديم
- جعل التطبيق يكتب في العمودين لفترة من الوقت
- الترحيل — ملء البيانات التاريخية في العمود الجديد
- تحويل عمليات القراءة إلى العمود الجديد
- التقليص — حذف العمود القديم
خطوة بخطوة: إعادة تسمية user_name إلى full_name
شرح مفصل:
الخطوة 1 — إضافة العمود الجديد
تتم العملية عبر الإنترنت، وتقتصر على البيانات الوصفية في PG 11 والإصدارات الأحدث عند استخدام قيمة افتراضية ثابتة:
ALTER TABLE users ADD COLUMN full_name VARCHAR(100);الخطوة 2 — الكتابة المزدوجة
انشروا كودًا يكتب في العمودين معًا:
// App writes to both:
UPDATE users SET user_name = $1, full_name = $1 WHERE id = $2;
INSERT INTO users (..., user_name, full_name) VALUES (..., $name, $name);الخطوة 3 — ملء البيانات السابقة
انسخوا البيانات التاريخية على دفعات:
UPDATE users SET full_name = user_name
WHERE full_name IS NULL
AND id IN (
SELECT id FROM users WHERE full_name IS NULL LIMIT 10000
);
-- Run in a loop until 0 rows affected.الخطوة 4 — إضافة NOT NULL (عبر الإنترنت)
بعد ملء البيانات السابقة، فرضوا NOT NULL بأمان:
ALTER TABLE users
ADD CONSTRAINT fn_not_null CHECK (full_name IS NOT NULL) NOT VALID;
ALTER TABLE users VALIDATE CONSTRAINT fn_not_null;
ALTER TABLE users ALTER COLUMN full_name SET NOT NULL;
ALTER TABLE users DROP CONSTRAINT fn_not_null;الخطوة 5 — تحويل عمليات القراءة
انشروا كودًا يقرأ full_name بدلًا من user_name.
الخطوة 6 — إيقاف الكتابة المزدوجة
انشروا كودًا يكتب في full_name فقط.
الخطوة 7 — حذف العمود القديم
تتم العملية عبر الإنترنت، وتقتصر على البيانات الوصفية:
ALTER TABLE users DROP COLUMN user_name;المقابل: الوقت والتعقيد
تتحول إعادة التسمية البسيطة إلى 4–7 عمليات نشر تمتد على أيام أو أسابيع. وفي أنظمة الإنتاج غير البسيطة، يمثل هذا المسار الآمن الوحيد.
إعادة تسمية الجداول
النمط مشابه، لكنه أصعب. استخدموا VIEW كاسم مستعار مؤقت:
ALTER TABLE old_name RENAME TO new_name;
CREATE VIEW old_name AS SELECT * FROM new_name;
-- Deploy new code. Then drop the view.مراجعة
تتبع إعادة تسمية الأعمدة دون توقف نمط التوسيع ← الترحيل ← التقليص.
- إضافة العمود الجديد
- الكتابة المزدوجة
- ملء البيانات السابقة على دفعات
- تحويل عمليات القراءة
- إيقاف الكتابة في العمود القديم
- حذف العمود القديم
تحقق سريع
ما المرحلة التي تأتي مباشرةً بعد نشر الكتابة المزدوجة في العمودين القديم والجديد؟
الأسئلة الشائعة
هل درس «إعادة تسمية الأعمدة دون توقف» مجاني؟
نعم — نص درس «إعادة تسمية الأعمدة دون توقف» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.
ماذا ستتعلم في «إعادة تسمية الأعمدة دون توقف»؟
أضف عمودًا جديدًا، واكتب في العمودين، واملأ البيانات السابقة، وحوّل عمليات القراءة، ثم احذف القديم — النمط القياسي لإعادة التسمية دون توقف تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟
لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «إعادة تسمية الأعمدة دون توقف»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟
نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الترحيلات الفورية: لماذا تقفل ALTER TABLE الجداول
- الفهارس المتزامنة (CREATE INDEX CONCURRENTLY)
- إعادة تسمية الأعمدة دون توقف
- الأدوات: Flyway وLiquibase وSqitch