اذهب إلى المحتوى

السؤال

نشر


  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'posts' already exists (Connection: mysql, SQL: create table `posts` (`id` bigint unsigned not null auto_increment primary key, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') 

this error appears when I try to  migrate database from add_published_and_likes.php

Recommended Posts

  • 0
نشر

يعني هذا الخطأ أن الجدول الذي تحاول إنشاؤه بإسم 'posts' موجود مسبقاً في قاعدة البيانات الخاصة بك ولا يمكن إنشاءه مرة أخرى.

لحل هذه المشكلة ، يمكنك إتباع الخطوات التالية:
1. تحديد ما إذا كان الجدول 'posts' موجود بالفعل في قاعدة البيانات الخاصة بك بفتح الـ MySQL client وعرض الجداول باستخدام الأمر `show tables;` 
2. إذا كان الجدول موجود فعلاً ، فيمكنك حذفه باستخدام الأمر `drop table posts;`
3. بعد حذف الجدول، يمكنك تشغيل الأمر الأول مرة أخرى `php artisan migrate` و الذي يجب أن يقوم بإنشاء جدول 'posts' الخاص بك بنجاح.

بعد إتمام هذه الخطوات، يجب أن يتم إنشاء الجدول بنجاح دون وجود أي أخطاء.

  • 0
نشر

الجدول الذي تحاول إنشاؤه بالفعل موجود في قاعدة البيانات، والسبب الأكثر شيوعًا لحدوث هذا الخطأ هو أنك تحاول إنشاء جدول يحمل نفس الاسم الذي تم استخدامه بالفعل لجدول آخر.

هناك بعض الحلول التي يمكنك محاولتها لحل المشكلة:

1- تأكد من أن الجدول الذي تحاول إنشاؤه ليس بالفعل موجودًا في قاعدة البيانات، من خلال فحص ذلك بإجراء استعلام لعرض الجداول الموجودة في قاعدة البيانات، والتأكد من عدم وجود جدول يحمل نفس الاسم.

2- إذا كنت متأكدًا من أن الجدول الحالي غير مهم ويمكن حذفه، فتستطيع تغيير اسم الجدول الذي تحاول إنشاؤه، من خلال بتغيير اسم الجدول في الاستعلام الذي تستخدمه في عملية الإنشاء.

3- بدلاً من محاولة إنشاء الجدول من الصفر، هناك ميزة التحديث (migration) في نظام إدارة قاعدة البيانات الخاص بك، وتلك الميزة تسمح بإجراء تعديلات على البنية الحالية لقاعدة البيانات دون الحاجة إلى حذف الجداول الحالية، وتستطيع إنشاء تكوين جديد للجدول الذي تحاول إنشاؤه كجزء من ملف التحديث، وسيقوم النظام بتنفيذ التغييرات اللازمة للبنية.

وفي حالة كنت تعمل على مشروع بإطار لارافيل فقم بتنفيذ الأمر التالي لإعادة إنشاء قاعدة البيانات وتشغيل عملية التهجير (migration) وإدخال بيانات افتراضية (seeding) في قواعد البيانات:

php artisan migrate:fresh --seed

 

  • 0
نشر

كما في التعليقات السابقة فإن المشكلة  أن الجدول الذي تحاول إنشاؤه بإسم 'posts' موجود مسبقاً لذلك لحل المشكلة 

  • في نافذة الأوامر قم بتنفيذ php artisan tinker
  • ثم Schema::drop('posts')
  • في النهاية php artisan migrate يجب أن يعمل

يمكنك أيضاً تخطي ترحيل الجدول إذا كان الجدول موجودًا في قاعدة البيانات عن طريق إضافة هذا الرمز:

if(Schema::hasTable('posts')) return;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...