Gevorg Davoian
Gevorg Davoian

Reputation: 524

Django JSONField

We have been using JSONField from jsonfield library for a while, but now we want to use native PostgreSQL JSONField. So I would like to know whether it is possible to change field types for existing models preserving old field names and without loosing any data. Thanks.

Upvotes: 1

Views: 1838

Answers (2)

pygeek
pygeek

Reputation: 7404

What you want to do is a data migration.

  1. Keep the existing jsonfield and add the new PostreSQL JSONField.
  2. Generate a data migration, which iterates through each record migrating the data from the old field to the new one.
  3. Once you've run the migration you can deprecate the old field and remove it without any data loss.

References

Django Data Migrations

Upvotes: 2

M. Dhaouadi
M. Dhaouadi

Reputation: 625

yes you can change fields' types and names without loosing the data. You just need to run makemigrations and migrate every time you change something`in your models.py

Upvotes: 0

Related Questions