I noticed a typo in a field name after running migrations, I followed these steps to update the field without loosing data.
- Update the filed name in the model with the desired name (taking note of the current name)
- Create an empty migration. If you have previous migrations, this one must be named in such a way that it comes last in the migrations list. eg if you already have 001_users and 002_emails then this new migration needs to be named 003_new_name
The new migration should look like this:
from __future__ import unicode_literals from django.db import migrations class Migration(migrations.Migration): dependencies = [ ('django_app_name', 'last_previous_migration'), # last_previous_migration is the migration immediately before this new empty migration without the .py extension ] operations = [ migrations.RenameField( model_name='model_name', old_name='old_filed_name', #that was taken note of from step one above new_name='description', #the new/desired field name ), ]
3. run migrations
$ python manage.py migrate
This will update the field.
Hope this saves someone some googling time