تطبيق DATABASE_OPTIONS عند اختبار مشروع جانغو (أو جعله لاستخدام ك InnoDB لماي)
-
21-08-2019 - |
سؤال
وكما يقول العنوان، أريد أن تطبيق إعدادات DATABASE_OPTIONS عند تشغيل بلدي التجارب عبر ./manage.py test
. في django/db/backends/creation.py
، أنها لا تعتبر هذا الخيار على الإطلاق في كل create_test_db()
و_create_test_db()
.
وهذا يكسر اختبار بهدف يستخدم وظيفة transaction.rollback
مع ك InnoDB. ويبدو أن قواعد البيانات اختبار لا يتم إنشاء مع مشغل التخزين ك InnoDB.
هل هناك أي بديل أو حل لهذه المشكلة؟
المحلول 2
ولقد وجدت السبب بنفسي. لا بد لي من استخدام TransactionTestCase بدلا من الفئة الأساسية TestCase العادية. راجع وثائق.
نصائح أخرى
والحل واحد قد يكون لتعيين محرك التخزين الافتراضي على الخادم الخاص بك لك InnoDB.
وفي my.cnf:
set default_storage_engine=InnoDB
وينبغي أن تعمل ما لم جانغو واختيار صراحة MYISAM.
لا تنتمي إلى StackOverflow