Opened 11 years ago
Closed 11 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 , 11 years ago
| Cc: | added |
|---|
comment:2 by , 11 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 , 11 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