Opened 10 years ago

Closed 10 years ago

#23028 closed New feature (fixed)

Add unique_together support to inspectdb

Reported by: anonymous Owned by: nobody
Component: Core (Management commands) Version: dev
Severity: Normal Keywords:
Cc: damien.nozay@… Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description

django/db/backends/mysql/introspection.py has a get_constraints() method.

This is what get_indexes() would return

{u'commit': {'primary_key': False, 'unique': False},
 u'repository': {'primary_key': False, 'unique': False}}

This is what get_constraints() would return

{u'commit_index': {'check': False,
                   'columns': [u'commit'],
                   'foreign_key': None,
                   'index': True,
                   'primary_key': False,
                   'unique': False},
 u'repo_index': {'check': False,
                 'columns': [u'repository'],
                 'foreign_key': None,
                 'index': True,
                 'primary_key': False,
                 'unique': False},
 u'unique_build': {'check': False,
                   'columns': [u'number', u'jobname', u'repository'],
                   'foreign_key': None,
                   'index': True,
                   'primary_key': False,
                   'unique': True}}

This is what manage.py inspectdb currently returns

class Builds(models.Model):
    number = models.IntegerField(blank=True, null=True)
    jobname = models.CharField(max_length=64)
    repository = models.CharField(max_length=64)
    commit = models.CharField(max_length=40)
    class Meta:
        managed = False
        db_table = 'builds'

it could be smarter and invoke get_constaints() to add the correct unique_together clause in Meta.

unique_together = ((u'number', u'jobname', u'repository'),)

Change History (3)

comment:1 by Damien Nozay, 10 years ago

Cc: damien.nozay@… added

reported by dnozay.

patch is at https://github.com/django/django/pull/2920.patch

comment:2 by Tim Graham, 10 years ago

Component: UncategorizedCore (Management commands)
Has patch: set
Patch needs improvement: set
Summary: inspectdb does not check unique_together constraintsAdd unique_together support to inspectdb
Triage Stage: UnreviewedAccepted
Type: UncategorizedNew feature
Version: 1.6master

Added some comments for improvement on the PR. Please uncheck "Patch needs improvement" when you update it, thanks.

comment:3 by Tim Graham <timograham@…>, 10 years ago

Resolution: fixed
Status: newclosed

In 70c54a3694975c43a2e0e22c4a90c3cbe1eb54e4:

Fixed #23028: Added unique_togther support to inspectdb.

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