Opened 9 years ago
Closed 6 years ago
#27338 closed Cleanup/optimization (fixed)
Running an AlterField to change a CharField primary key to AutoField crashes.
| Reported by: | Tim Graham | Owned by: | nobody |
|---|---|---|---|
| Component: | Migrations | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
For example: change id = models.CharField(max_length=20, primary_key=True) to id = models.AutoField(primary_key=True). It generates this operation:
migrations.AlterField(
model_name='foo',
name='id',
field=models.AutoField(primary_key=True, serialize=False),
),
Running it on PostgreSQL gives: django.db.utils.ProgrammingError: operator class "varchar_pattern_ops" does not accept data type integer. I'm not sure if this can be made to work sensibly. Is it possible to autopopulate the AutoField? I ran into this situation while investigating #27267.
Change History (5)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
| Description: | modified (diff) |
|---|
comment:3 by , 8 years ago
PostgreSQL gives the same error if you use AlterField to change a CharField primary key to a ForeignKey.
comment:5 by , 6 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
| Summary: | Running an AlterField to change a CharField primary key to AutoField crashes → Running an AlterField to change a CharField primary key to AutoField crashes. |
Fixed in 91b2bc3e70be2632baad86488fb03cf02848b5b6.
#27339 is related.