يمكنك إنشاء فهارس قاعدة بيانات باستخدام السمة #[ORM\Index(fields: ['fieldName'] في ملف الكيان وسيقوم Doctrine بالباقي لإدارة الفهرس نيابةً عنك، ولكن لن أتحدث عن ذلك.
مع نمو مشروعك أو يتطلب متطلبات محددة، قد تحتاج إلى استخدام أنواع فهرس مخصصة مثل GIST وGIN وBRIN وما إلى ذلك (https://www.postgresql.org/docs/current/indexes-types.html). لا يدعم Doctrine إنشاء أنواع فهرس خاصة بقاعدة البيانات جاهزة للاستخدام (المرجع).لمعالجة هذه المشكلة، يمكنك إما تنفيذ CREATE INDEX DDL مباشرة إلى قاعدة البيانات أو كتابة DDL في ملف هجرة العقيدة. يمنحك الخيار الأخير ميزة سهولة نشر التغييرات أو التراجع عنها.
بغض النظر عن الطريقة التي تستخدمها لإنشاء فهرس مخصص، ستضع Doctrine دائمًا علامة على هذه الفهارس المخصصة على أنها فهارس غير معينة، وبالتالي إذا قمت بتنفيذعقيدة:مخطط:تحقق من الصحة، فستحصل على خطأ يفيد بأنه إذا لم تكن قاعدة البيانات الخاصة بك متزامنة، فإن نفس الشيء أثناء تنفيذعقيدة:مخطط:تحديث --dump-sql أوعقيدة:migrations:diff سوف تظهر لك عبارة DROP INDEX... لإزالة الفهارس المخصصة.
حل
لقد أعطتني قراءة هاتين الصفحتين جميع المعلومات حول كيفية استخدام منصة DBAL مخصصة من خلال البرمجيات الوسيطة Doctrine:
تعديل مساحة الاسم واسم الفئة حسب احتياجاتك.
true, 'index_name_2' => true, ]; #[\Override] protected function _getPortableTableIndexesList(array $tableIndexes, string $tableName): array { $indexes = parent::_getPortableTableIndexesList($tableIndexes, $tableName); foreach (array_keys($indexes) as $indexName) { if (isset(self::IGNORED_INDEXES[$indexName])) { unset($indexes[$indexName]); } } return $indexes; } }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3