2
0

0001_setup_extensions.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from unittest import mock
  2. from django.db import connection, migrations
  3. try:
  4. from django.contrib.postgres.operations import (
  5. BloomExtension, BtreeGinExtension, BtreeGistExtension, CITextExtension,
  6. CreateExtension, CryptoExtension, HStoreExtension, TrigramExtension,
  7. UnaccentExtension,
  8. )
  9. except ImportError:
  10. BloomExtension = mock.Mock()
  11. BtreeGinExtension = mock.Mock()
  12. BtreeGistExtension = mock.Mock()
  13. CITextExtension = mock.Mock()
  14. CreateExtension = mock.Mock()
  15. HStoreExtension = mock.Mock()
  16. TrigramExtension = mock.Mock()
  17. UnaccentExtension = mock.Mock()
  18. needs_crypto_extension = False
  19. else:
  20. needs_crypto_extension = not connection.features.is_postgresql_13
  21. class Migration(migrations.Migration):
  22. operations = [
  23. BloomExtension(),
  24. BtreeGinExtension(),
  25. BtreeGistExtension(),
  26. CITextExtension(),
  27. # Ensure CreateExtension quotes extension names by creating one with a
  28. # dash in its name.
  29. CreateExtension('uuid-ossp'),
  30. # CryptoExtension is required for RandomUUID() on PostgreSQL < 13.
  31. CryptoExtension() if needs_crypto_extension else mock.Mock(),
  32. HStoreExtension(),
  33. TrigramExtension(),
  34. UnaccentExtension(),
  35. ]