summaryrefslogtreecommitdiff
path: root/django/db/backends/postgresql
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/backends/postgresql')
-rw-r--r--django/db/backends/postgresql/base.py1
-rw-r--r--django/db/backends/postgresql/features.py1
-rw-r--r--django/db/backends/postgresql/introspection.py1
-rw-r--r--django/db/backends/postgresql/operations.py3
4 files changed, 6 insertions, 0 deletions
diff --git a/django/db/backends/postgresql/base.py b/django/db/backends/postgresql/base.py
index 192316d7fb..ed911a91da 100644
--- a/django/db/backends/postgresql/base.py
+++ b/django/db/backends/postgresql/base.py
@@ -86,6 +86,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
'BigIntegerField': 'bigint',
'IPAddressField': 'inet',
'GenericIPAddressField': 'inet',
+ 'JSONField': 'jsonb',
'NullBooleanField': 'boolean',
'OneToOneField': 'integer',
'PositiveBigIntegerField': 'bigint',
diff --git a/django/db/backends/postgresql/features.py b/django/db/backends/postgresql/features.py
index 3b4199fa78..00a8009cf2 100644
--- a/django/db/backends/postgresql/features.py
+++ b/django/db/backends/postgresql/features.py
@@ -12,6 +12,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
has_real_datatype = True
has_native_uuid_field = True
has_native_duration_field = True
+ has_native_json_field = True
can_defer_constraint_checks = True
has_select_for_update = True
has_select_for_update_nowait = True
diff --git a/django/db/backends/postgresql/introspection.py b/django/db/backends/postgresql/introspection.py
index beec8619cc..dee305cc06 100644
--- a/django/db/backends/postgresql/introspection.py
+++ b/django/db/backends/postgresql/introspection.py
@@ -26,6 +26,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
1266: 'TimeField',
1700: 'DecimalField',
2950: 'UUIDField',
+ 3802: 'JSONField',
}
ignored_tables = []
diff --git a/django/db/backends/postgresql/operations.py b/django/db/backends/postgresql/operations.py
index 70880d4179..c67062a4a7 100644
--- a/django/db/backends/postgresql/operations.py
+++ b/django/db/backends/postgresql/operations.py
@@ -74,6 +74,9 @@ class DatabaseOperations(BaseDatabaseOperations):
def time_trunc_sql(self, lookup_type, field_name):
return "DATE_TRUNC('%s', %s)::time" % (lookup_type, field_name)
+ def json_cast_text_sql(self, field_name):
+ return '(%s)::text' % field_name
+
def deferrable_sql(self):
return " DEFERRABLE INITIALLY DEFERRED"