Opened 3 years ago

Last modified 3 years ago

#33709 closed New feature

Primary key of m2m tables is not migrated to BigAutoField — at Initial Version

Reported by: Jeremy Lainé Owned by: nobody
Component: Database layer (models, ORM) Version: 3.2
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I am trying to upgrade an existing application's models to use only "bigint" primary keys on postgresql. To do this I changed DEFAULT_AUTO_FIELD to BigAutoField, generated the migrations then applied them.

The tables for my explicitly defined models get upgraded correctly. The many-to-many intermediate tables on the other hand still have an "integer" primary key, with the 32bit limit I'm trying to avoid.

The following model are sufficient to reproduce the issue:

`
class Book(models.Model):

name = models.CharField(max_length=255)
tags = models.ManyToManyField("Tag")

class Tag(models.Model):

name = models.CharField(max_length=255)

`

The resulting schema for the testapp_book_tags looks like:

`
test=> \d testapp_book_tags;

Table "public.testapp_book_tags"

Column | Type | Collation | Nullable | Default


id | integer | | not null | nextval('testapp_book_tags_id_seq'::regclass)
book_id | bigint | | not null |
tag_id | bigint | | not null |

`

Change History (0)

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