[Django] #27339: Adding an AutoField prompts for a default which creates a broken migration

56 views
Skip to first unread message

Django

unread,
Oct 12, 2016, 8:56:44 PM10/12/16
to django-...@googlegroups.com
#27339: Adding an AutoField prompts for a default which creates a broken migration
------------------------------------------------+------------------------
Reporter: Tim Graham | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Migrations | Version: master
Severity: Normal | Keywords:
Triage Stage: Accepted | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
------------------------------------------------+------------------------
Change:
{{{
class Foo(models.Model):
id = models.CharField(max_length=20, primary_key=True)
}}}
to:
{{{
class Foo(models.Model):
character_id = models.AutoField(primary_key=True)
}}}
The created migration has these operations:
{{{
migrations.RemoveField(
model_name='foo',
name='id',
),
migrations.AddField(
model_name='foo',
name='character_id',
field=models.AutoField(default=0, primary_key=True, serialize=False),
preserve_default=False,
),
}}}
(entering 0 at the default prompt). Running the migration on PostgreSQL
gives: `ProgrammingError: multiple default values specified for column
"character_id" of table "t27267_foo"`. I'm not sure if this can be made to
work sensibly. Removing the default from the migration operation works,
but if there's an existing data, the `character_id` field must be
populated somehow (perhaps a `RunPython` could be done in the same
migration?). #27338 is related. This was discovered while investigating
#27267.

--
Ticket URL: <https://code.djangoproject.com/ticket/27339>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Nov 9, 2017, 8:16:54 PM11/9/17
to django-...@googlegroups.com
#27339: Adding an AutoField prompts for a default which creates a broken migration
--------------------------------------+------------------------------------

Reporter: Tim Graham | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Migrations | Version: master
Severity: Normal | Resolution:

Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by Akshay Raj Gollahalli):

In Django 2.0b1 when trying to migrate without the default value, the CLI
asks to enter a default value.

--
Ticket URL: <https://code.djangoproject.com/ticket/27339#comment:1>

Django

unread,
Aug 21, 2019, 6:24:33 AM8/21/19
to django-...@googlegroups.com
#27339: Adding an AutoField prompts for a default which creates a broken migration
--------------------------------------+------------------------------------
Reporter: Tim Graham | Owner: za
Type: Cleanup/optimization | Status: assigned
Component: Migrations | Version: master
Severity: Normal | Resolution:

Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by za):

* status: new => assigned
* owner: nobody => za


Comment:

I am facing the same issue, but on my case I don't have data on the
existing table. I'll think how to solve this issue.

--
Ticket URL: <https://code.djangoproject.com/ticket/27339#comment:2>

Django

unread,
Feb 12, 2021, 4:54:56 AM2/12/21
to django-...@googlegroups.com
#27339: Adding an AutoField prompts for a default which creates a broken migration
--------------------------------------+------------------------------------
Reporter: Tim Graham | Owner: (none)

Type: Cleanup/optimization | Status: new
Component: Migrations | Version: master
Severity: Normal | Resolution:

Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Mariusz Felisiak):

* owner: za => (none)
* status: assigned => new


--
Ticket URL: <https://code.djangoproject.com/ticket/27339#comment:3>

Reply all
Reply to author
Forward
0 new messages