سؤال

أواجه بعض المشكلات المتعلقة بتغيير جدول في ترحيل العقيدة 2. يرمي الكود التالي دائمًا الخطأ: عملية "العقيدة dbal منصات AbstractPlatform :: getAltertablesQl" غير مدعومة بواسطة النظام الأساسي.

هذا غريب حيث أن الجدول المتغير مدعوم بواسطة SQLite.

public function up(Schema $schema)
{
    $user = $schema->getTable('user');
    $user->addColumn('resellerId', 'integer', array(
        'length'        => '10',
        'notnull'       => true,
        'unsigned'      => true,
    ));
}
هل كانت مفيدة؟

المحلول

على الرغم من أن الجدول المتغير "مدعوم" بواسطة SQLite ، فإن مجموعة العمليات المسموح بها ضئيلة مقارنة بمعظم قواعد البيانات الأخرى (http://www.sqlite.org/lang_altertable.html) ، وبالتالي السبب يعتبرها غير مدعومة من قبل العقيدة dbal.

نصائح أخرى

هناك بعض الاختلافات المتسوية التي لاحظتها بين MySQL و SQLite عند استخدام ORM. باستخدام العقيدة ، وجدت أن العلاقات الرئيسية الخارجية لا يتم الحفاظ عليها في SQLite كما هي في MySQL.

هذا ألم وأنا أستخدم SQLite في DBS الذاكرة لاختبارات الوحدة حيث لا يمكنني ضمان أن اختبارات الثبات التي تمر في SQLite تمر أيضًا في MySQL.

في الواقع ، للحصول على sqlite في DBS الذاكرة للعمل مع العقيدة ، اضطررت إلى تعديل عقيدة SQLite (رمز في http://thecodeabode.blogspot.com/2010/12/dropping-sqlite-in-memory-databases-in.html) مع فشل بناء جملة SQL الذي تم إنشاؤه لإسقاط قاعدة بيانات في DBS الذاكرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top