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 , 10 years ago
Cc: | added |
---|
comment:2 by , 10 years ago
Component: | Uncategorized → Core (Management commands) |
---|---|
Has patch: | set |
Patch needs improvement: | set |
Summary: | inspectdb does not check unique_together constraints → Add unique_together support to inspectdb |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → New feature |
Version: | 1.6 → master |
Added some comments for improvement on the PR. Please uncheck "Patch needs improvement" when you update it, thanks.
comment:3 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
reported by dnozay.
patch is at https://github.com/django/django/pull/2920.patch