#23264: db_constraint=False not enforced on migrations
----------------------------+--------------------------------------
     Reporter:  jmacul2     |                    Owner:  nobody
         Type:  Bug         |                   Status:  new
    Component:  Migrations  |                  Version:  1.7-rc-2
     Severity:  Normal      |               Resolution:
     Keywords:              |             Triage Stage:  Unreviewed
    Has patch:  0           |      Needs documentation:  0
  Needs tests:  0           |  Patch needs improvement:  0
Easy pickings:  0           |                    UI/UX:  0
----------------------------+--------------------------------------
Changes (by jmacul2):

 * needs_better_patch:   => 0
 * needs_tests:   => 0
 * needs_docs:   => 0


Comment:

 Example...

 foo/models.py

 {{{
 from django.db import models

 class Car(models.Model):
     name = models.CharField(max_length=255)
     color = models.ForeignKey('Color', db_constrain=False)

 class Color(models.Model):
     color = models.CharField(max_length=255)
 }}}

 foo/migrations/0001_initial.py

 {{{
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals

 from django.db import models, migrations


 class Migration(migrations.Migration):

     dependencies = [
     ]

     operations = [
         migrations.CreateModel(
             name='Car',
             fields=[
                 ('id', models.AutoField(verbose_name='ID',
 serialize=False, auto_created=True, primary_key=True)),
                 ('name', models.CharField(max_length=255)),
             ],
             options={
             },
             bases=(models.Model,),
         ),
         migrations.CreateModel(
             name='Color',
             fields=[
                 ('id', models.AutoField(verbose_name='ID',
 serialize=False, auto_created=True, primary_key=True)),
                 ('color', models.CharField(max_length=255)),
             ],
             options={
             },
             bases=(models.Model,),
         ),
         migrations.AddField(
             model_name='car',
             name='color',
             field=models.ForeignKey(to='foo.Color', db_constraint=False),
             preserve_default=True,
         ),
     ]
 }}}

 /manage.py sqlmigrate foo 0001

 {{{

 CREATE TABLE "foo_car" ("id" serial NOT NULL PRIMARY KEY, "name"
 varchar(255) NOT NULL);
 CREATE TABLE "foo_color" ("id" serial NOT NULL PRIMARY KEY, "color"
 varchar(255) NOT NULL);
 ALTER TABLE "foo_car" ADD COLUMN "color_id" integer NOT NULL;
 ALTER TABLE "foo_car" ALTER COLUMN "color_id" DROP DEFAULT;
 CREATE INDEX foo_car_399a0583 ON "foo_car" ("color_id");
 ALTER TABLE "foo_car" ADD CONSTRAINT
 foo_car_color_id_75af12d643db05a2_fk_foo_color_id FOREIGN KEY ("color_id")
 REFERENCES "foo_color" ("id") DEFERRABLE INITIALLY DEFERRED;

 }}}

 FYI - This is using postgres

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

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/065.97d5cd23c2209e4a04caa1609ff7cb2c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to