# django.contrib.postgres.fields.JSONField to django.db.models.JSONField Migration Path

**URL:** <https://forum.djangoproject.com/t/django-contrib-postgres-fields-jsonfield-to-django-db-models-jsonfield-migration-path/3409>\
**Category:** ORM\
**Created:** [July 13, 2020, 4:45pm UTC](https://forum.djangoproject.com/t/django-contrib-postgres-fields-jsonfield-to-django-db-models-jsonfield-migration-path/3409 "2020-07-13T16:45:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pablopenton](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/pablopenton/32/987_2.png) [@pablopenton](https://forum.djangoproject.com/u/pablopenton)\
**Post date:** [July 13, 2020, 4:45pm UTC](https://forum.djangoproject.com/t/django-contrib-postgres-fields-jsonfield-to-django-db-models-jsonfield-migration-path/3409/1 "2020-07-13T16:45:38Z")

</div>

Hello,

A project I’m working has a use case for a model with a JSONField. I use Postgres for the db and was curious what the upgrade path looked like for the current Postgres specific JSON Field to the upcoming db-neutral JSONField in 3.1. It seems like it’d be a simple import statement swap, but wanted to check in case it’d be better off holding off until 3.1’s release to avoid any complicated migrations.

Thanks.

---

<div class="post-metadata">

**Author:** ![adamchainz](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/adamchainz/32/26_2.png) [@adamchainz](https://forum.djangoproject.com/u/adamchainz)\
**Post date:** [July 13, 2020, 5:21pm UTC](https://forum.djangoproject.com/t/django-contrib-postgres-fields-jsonfield-to-django-db-models-jsonfield-migration-path/3409/2 "2020-07-13T17:21:55Z")

</div>

This is answered in the [3.1 release notes](https://docs.djangoproject.com/en/3.1/releases/3.1/#jsonfield-for-all-supported-database-backends):

> If your project uses `django.contrib.postgres.fields.JSONField` , plus the related form field and transforms, you should adjust to use the new fields, and generate and apply a database migration. For now, the old fields and transforms are left as a reference to the new ones and are [deprecated as of this release](https://docs.djangoproject.com/en/3.1/releases/3.1/#deprecated-jsonfield).

You can also use [django-jsonfield-backport](https://pypi.org/project/django-jsonfield-backport/) instead of `django.contrib.postgres` but I don’t think there’s a huge advantage for that.

---

<div class="post-metadata">

**Author:** ![pablopenton](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/pablopenton/32/987_2.png) [@pablopenton](https://forum.djangoproject.com/u/pablopenton)\
**Post date:** [July 13, 2020, 5:24pm UTC](https://forum.djangoproject.com/t/django-contrib-postgres-fields-jsonfield-to-django-db-models-jsonfield-migration-path/3409/3 "2020-07-13T17:24:23Z")

</div>

Thanks @adamchainz! I saw a blurb about 3.1 but hadn’t found the full release notes. Appreciate the link.
