تطبيق DATABASE_OPTIONS عند اختبار مشروع جانغو (أو جعله لاستخدام ك InnoDB لماي)

StackOverflow https://stackoverflow.com/questions/1066990

سؤال

وكما يقول العنوان، أريد أن تطبيق إعدادات 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.

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