Cannot correct a failed migration django
I inadvertently did this:
ordering = models.IntegerField(default="Order/position")
makemigrations and got no error. When I ran
migrate it blew up with the error:
ValueError: invalid literal for int() with base 10: 'Order/position'
what I had meant to do was this:
ordering = models.IntegerField(default=0, verbose_name="Order/Position")
I updated to the correct field definition and while
makemigrations is happy and noted the change
migrate still keeps throwing that same error.
How do I fix this?
In case this matters - I am running Django with Postgres and both are in Docker containers
Is it possible to "cancel" a previously failed migration? Is it common for makemigration to not catch big errors like this?
The best is probably to fix the migration file itself. In the migration file, it will probably looked like:
from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ # … ] operations = [ migrations.CreateModel( name='MyModel', fields=[ ( 'id', models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name='ID', ), ), ( 'ordering', models.IntegerField( default='Order/position', ), ), ], ) ]
You fix this by altering the definition for
ordering to the
IntegerField you described.