Opened 7 years ago

Last modified 4 years ago

#27417 closed Bug

Migration to change model field case crashes on Oracle — at Version 3

Reported by: Vackar Afzal Owned by: Zach Zundel
Component: Migrations Version: 1.9
Severity: Normal Keywords: Migrations, Oracle, DB, Rename
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Tim Graham)

Given the following class

class MyModel(models.Model):
    somefield = models.CharField(max_length=100)

if I rename 'somefield' to 'someField' and run make migrations, it will generate a migrations that will rename 'somefield' to 'someField'

On case insensitive backends like oracle, this will result in the following invalid SQL being generated.

alter table mymodel rename somefield to someField;

In cases like this, it should simply generate no SQL.

The other option is when prompted for 'did you rename field x to y' , you can say no, which will result in a drop column followed by an add column, but this will result in all of the existing data in the column being lost, less than ideal.

Change History (3)

comment:1 by Vackar Afzal, 7 years ago

Type: UncategorizedBug

comment:2 by Zach Zundel, 7 years ago

Owner: changed from nobody to Zach Zundel
Status: newassigned

comment:3 by Tim Graham, 7 years ago

Description: modified (diff)
Easy pickings: unset
Severity: Release blockerNormal
Summary: Change case on field causes invalid rename on Oracle backend migrationMigration to change model field case crashes on Oracle
Triage Stage: UnreviewedAccepted

Reproduced on master at 373c6c409c310cb61e1e9c9aff4adba379ffd0b4. The error when running the migration is "ORA-00957: duplicate column name".

Note: See TracTickets for help on using tickets.
Back to Top