diff options
author | Claude Paroz <claude@2xlibre.net> | 2014-12-24 15:55:57 +0100 |
---|---|---|
committer | Claude Paroz <claude@2xlibre.net> | 2014-12-27 12:52:44 +0100 |
commit | 2ceb10f3b02cbebad6ed908880f49a7c3e901d12 (patch) | |
tree | d79a50705b32da2fa33c37b8c54e99ce9108b599 /tests/indexes | |
parent | 47182965465f47657cbab6858a6a8637cc32b2df (diff) | |
download | django-2ceb10f3b02cbebad6ed908880f49a7c3e901d12.tar.gz |
Fixed #14180 -- Prevented unneeded index creation on MySQL-InnoDB
Thanks zimnyx for the report and Simon Charette, Tim Graham for
the reviews.
Diffstat (limited to 'tests/indexes')
-rw-r--r-- | tests/indexes/tests.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/indexes/tests.py b/tests/indexes/tests.py index 86000bb94c..0710446245 100644 --- a/tests/indexes/tests.py +++ b/tests/indexes/tests.py @@ -5,7 +5,7 @@ from django.db import connection from django.test import TestCase from django.test.utils import IgnorePendingDeprecationWarningsMixin -from .models import Article, IndexTogetherSingleList +from .models import Article, ArticleTranslation, IndexTogetherSingleList class CreationIndexesTests(IgnorePendingDeprecationWarningsMixin, TestCase): @@ -82,3 +82,17 @@ class SchemaIndexesTests(TestCase): """Test indexes are not created for related objects""" index_sql = connection.schema_editor()._model_indexes_sql(Article) self.assertEqual(len(index_sql), 1) + + @skipUnless(connection.vendor == 'mysql', "This is a mysql-specific issue") + def test_no_index_for_foreignkey(self): + """ + MySQL on InnoDB already creates indexes automatically for foreign keys. + (#14180). + """ + storage = connection.introspection.get_storage_engine( + connection.cursor(), ArticleTranslation._meta.db_table + ) + if storage != "InnoDB": + self.skip("This test only applies to the InnoDB storage engine") + index_sql = connection.schema_editor()._model_indexes_sql(ArticleTranslation) + self.assertEqual(index_sql, []) |