-
-
Save dhbradshaw/e2bdeb502b0d0d2acced to your computer and use it in GitHub Desktop.
To change a field name in django 1.7+ | |
1. Edit the field name in the model (but remember the old field name: you need it for step 3!) | |
2. Create an empty migration | |
$ python manage.py makemigrations --empty myApp | |
3. Edit the empty migration (it's in the migrations folder in your app folder, and will be the most recent migration) by adding | |
migrations.RenameField('MyModel', 'old_field_name', 'new_field_name'), | |
to the operations list. | |
4. Apply the migration | |
$ python manage.py migrate myApp |
Thanks Doug! 🎱
If this were on Stack Overflow you'd have tons of reputation - thanks!
Thanks a ton!
Exactly what I needed and it worked perfectly.
Thanks, Doug!
- Create an empty migration
It is a bit easier to create an automatic migration, and replace the RemoveField + AddField pair with one RenameField (or with RenameField + AlterField if needed).
operations = [ migrations.RenameField('MyModel', 'old_field_name', 'new_field_name'), ]
perfect!
I'm not sure when this feature is added to Django but just accidentally found Django 2.1.4 asks for renames when running makemigrations. At least in my case, which was location_state
-> location_city
.
@amirkarimi I found this doesn't always happen - I came here from a google search because I needed to change a migration that dropped the field and added the new one instead of renaming it.
HERO!!!
thanks!
Thankyou so much!
Great! Working !
Easier way I found:
1st: Is changing the model to the correct name you want.
2nd: Changing the file in migrations folder which usually looks like 0001_initial.py and changing the field name in the list to the correct field name you want also.
3rd: change the column name in the Database.
It's working to me. Thanks!!
💯. Thanks
Thanks for this!