migrate id field from integer to biginter (probable bug)

561 views
Skip to first unread message

drakkan

unread,
May 31, 2017, 1:34:07 PM5/31/17
to Django developers (Contributions to Django itself)
Hi,

I have two models like these:

class Allarme(models.Model):
....

class Registrazione(models.Model):
       allarme = models.ForeignKey(Allarme, blank=True, null=True, on_delete=models.DO_NOTHING, db_constraint=False)
       ....

now I want to change id field for these models from int to bigint so I added to both

id = models.BigAutoField(primary_key=True)

and I did the migration,

python manage.py sqlmigrate

show something like this:

BEGIN;
--
-- Alter field id on allarme
--
ALTER TABLE "multimedia_allarmi" ALTER COLUMN "id" TYPE bigint USING "id"::bigint;
DROP SEQUENCE IF EXISTS "multimedia_allarmi_id_seq" CASCADE;
CREATE SEQUENCE "multimedia_allarmi_id_seq";
ALTER TABLE "multimedia_allarmi" ALTER COLUMN "id" SET DEFAULT nextval('"multimedia_allarmi_id_seq"');
SELECT setval('"multimedia_allarmi_id_seq"', MAX("id")) FROM "multimedia_allarmi";
ALTER TABLE "multimedia_registrazioni" ALTER COLUMN "allarme_id" TYPE bigint USING "allarme_id"::bigint;
ALTER TABLE "multimedia_registrazioni" ADD CONSTRAINT "multimedia_registrazioni_allarme_id_4919213e_fk" FOREIGN KEY ("allarme_id") REFERENCES "multimedia_allarmi" ("id") DEFERRABLE INITIALLY DEFERRED;
--
-- Alter field id on registrazione
--
ALTER TABLE "multimedia_registrazioni" ALTER COLUMN "id" TYPE bigint USING "id"::bigint;
DROP SEQUENCE IF EXISTS "multimedia_registrazioni_id_seq" CASCADE;
CREATE SEQUENCE "multimedia_registrazioni_id_seq";
ALTER TABLE "multimedia_registrazioni" ALTER COLUMN "id" SET DEFAULT nextval('"multimedia_registrazioni_id_seq"');
SELECT setval('"multimedia_registrazioni_id_seq"', MAX("id")) FROM "multimedia_registrazioni";
COMMIT;

so as you can see a foreign key is added for a model field with db_constraint=False, 

can you please confirm that this is a bug? I'm using django 1.11.1

thanks!


Tim Graham

unread,
Jun 2, 2017, 11:41:01 AM6/2/17
to Django developers (Contributions to Django itself)

Josh Schneier

unread,
Jun 11, 2017, 10:56:18 AM6/11/17
to Django developers (Contributions to Django itself)
Reply all
Reply to author
Forward
0 new messages