لقد اضطررت مؤخرًا إلى التعامل مع بعض القيود المفروضة على مزود قاعدة البيانات الخاص بي والذي لا يدعم إعادة تسمية الجدول. لذلك اضطررت إلى تكرار الجدول يدويًا.
تتم استضافة قاعدة البيانات الخاصة بمنصة SaaS الخاصة بي على Planetscale. توفر الشركة قاعدة بيانات بدون خادم متوافقة مع MySQL. بفضل طبيعتها التي لا تحتوي على خادم، يمكنك الحصول على قوة التقسيم الأفقي وتغييرات المخطط غير المحظورة والعديد من ميزات قاعدة البيانات القوية دون عناء تنفيذها. وتجربة مطور رائعة.
من منظور آخر، يتعين عليك التعامل مع بعض القيود المتعلقة بتغييرات المخطط. هذه القيود ضرورية لضمان الاتساق في بيئة مجزأة.
لقد حققوا الكثير من التقدم منذ أن أصبحت عميلاً (منذ عامين تقريبًا)، مثل دعم قيد المفتاح الخارجي: https://planetscale.com/docs/concepts/foreign-key-constraints
المفتش هو تطبيق Laravel. باستخدام عمليات الترحيل Laravel، يمكنني استخدام وظيفة إعادة التسمية لتغيير اسم الجدول ببساطة:
Schema::rename('from', 'to');
لا يدعم Planetscale إعادة تسمية الجدول محليًا. لذلك كان علي أن أجد حلاً بديلاً لإنجاز المهمة.
لكي نكون صادقين، فإن إعادة تسمية الجدول هي عملية نادرة جدًا. بالنسبة لي كان ذلك بسبب تداخل الأسماء بين كيانات "المشاريع" و"التطبيقات". اضطررت إلى إعادة تسمية المشاريع -> التطبيقات.
هناك طريقتان لتكرار جدول في MySQL.
يمكنك تكرار بنية الجدول فقط (الأعمدة، المفاتيح، الفهارس، إلخ) بدون بيانات، باستخدام إنشاء جدول... مثل:
CREATE TABLE applications LIKE projects;
النتيجة هي إنشاء جدول التطبيقات بنفس بنية جدول المشاريع الأصلية، ولكن بدون بيانات.
لاستيراد البيانات أيضًا، يمكنك تشغيل عبارة ثانية كـ INSERT INTO … SELECT:
INSERT INTO applications SELECT * FROM projects;
احرص على تشغيل هذا البيان على جداول كبيرة لأنه قد يستغرق الكثير من الوقت وموارد الخادم.
الخيار الثاني هو تكرار تعريفات الأعمدة فقط واستيراد البيانات في عبارة واحدة باستخدام CREATE TABLE … AS SELECT:
CREATE TABLE applications AS SELECT * FROM projects;
يرث جدول التطبيقات الجديد تعريفات الأعمدة الأساسية فقط من جدول المشاريع. لا يكرر قيود المفتاح الخارجي والفهارس وتعريفات الزيادة التلقائية.
قد يكون هذا الخيار مفيدًا عندما يكون لديك أسماء الفهارس والمفاتيح المرتبطة باسم الجدول. تغيير اسم الجدول عليك استبدال أسماء القيود. من الأفضل عدم استيرادها على الإطلاق والقيام بذلك مرة أخرى.
تعد قاعدة البيانات دائمًا موضوعًا ساخنًا للمطورين في أي مرحلة. يمكنك العثور على موارد تقنية أخرى على المدونة. فيما يلي المقالات الأكثر شعبية حول هذا الموضوع:
Inspector عبارة عن أداة لمراقبة تنفيذ التعليمات البرمجية مصممة خصيصًا لمطوري البرامج. لا تحتاج إلى تثبيت أي شيء على مستوى الخادم، فقط قم بتثبيت حزمة الملحن وستكون جاهزًا للبدء.
على عكس الأنظمة الأساسية المعقدة الأخرى، فإن Inspector سهل للغاية، وصديق PHP. يمكنك تجربة حزمة Laravel أو Symfony الخاصة بنا.
إذا كنت تبحث عن أتمتة فعالة، ورؤى عميقة، والقدرة على إعادة توجيه التنبيهات والإشعارات إلى بيئة المراسلة الخاصة بك، فجرب Inspector مجانًا. سجل حسابك.
أو تعرف على المزيد على الموقع: https://inspector.dev
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3