mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Refs #31615 -- Added EXISTS clauses to extension operations.
This commit is contained in:
parent
06c8565a46
commit
22a59c01c0
@ -23,7 +23,7 @@ class CreateExtension(Operation):
|
||||
return
|
||||
if not self.extension_exists(schema_editor, self.name):
|
||||
schema_editor.execute(
|
||||
'CREATE EXTENSION %s' % schema_editor.quote_name(self.name)
|
||||
'CREATE EXTENSION IF NOT EXISTS %s' % schema_editor.quote_name(self.name)
|
||||
)
|
||||
# Clear cached, stale oids.
|
||||
get_hstore_oids.cache_clear()
|
||||
@ -38,7 +38,7 @@ class CreateExtension(Operation):
|
||||
return
|
||||
if self.extension_exists(schema_editor, self.name):
|
||||
schema_editor.execute(
|
||||
'DROP EXTENSION %s' % schema_editor.quote_name(self.name)
|
||||
'DROP EXTENSION IF EXISTS %s' % schema_editor.quote_name(self.name)
|
||||
)
|
||||
# Clear cached, stale oids.
|
||||
get_hstore_oids.cache_clear()
|
||||
|
@ -183,13 +183,13 @@ class CreateExtensionTests(PostgreSQLTestCase):
|
||||
with connection.schema_editor(atomic=False) as editor:
|
||||
operation.database_forwards(self.app_label, editor, project_state, new_state)
|
||||
self.assertEqual(len(captured_queries), 4)
|
||||
self.assertIn('CREATE EXTENSION', captured_queries[1]['sql'])
|
||||
self.assertIn('CREATE EXTENSION IF NOT EXISTS', captured_queries[1]['sql'])
|
||||
# Reversal.
|
||||
with CaptureQueriesContext(connection) as captured_queries:
|
||||
with connection.schema_editor(atomic=False) as editor:
|
||||
operation.database_backwards(self.app_label, editor, new_state, project_state)
|
||||
self.assertEqual(len(captured_queries), 2)
|
||||
self.assertIn('DROP EXTENSION', captured_queries[1]['sql'])
|
||||
self.assertIn('DROP EXTENSION IF EXISTS', captured_queries[1]['sql'])
|
||||
|
||||
def test_create_existing_extension(self):
|
||||
operation = BloomExtension()
|
||||
|
Loading…
Reference in New Issue
Block a user