Opened 5 years ago
Last modified 5 years ago
#30614 closed Cleanup/optimization
Add constraint name validation to system checks. — at Version 2
Reported by: | Can Sarıgöl | Owned by: | Can Sarıgöl |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Constraints names cannot start with an underscore or a number and cannot be longer than 30 characters on Oracle. We can restrict them with system checks for cross-database compatibility.
Change History (2)
comment:1 by , 5 years ago
Has patch: | set |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 5 years ago
Description: | modified (diff) |
---|
After double-thinking I'm not sure if we want this change. First of all it is backward incompatible and it is not a minor incompatibility. Constraints have been introduced in Django 2.2 and for all databases (except Oracle) names starting with an underscore _
or a digit, or with a name of length greater than 30 characters are valid (63 characters on PostgreSQL, 64 on MySQL). I agree that it is a inconsistency between constraints and indexes policy but still we need to be careful with introducing incompatibilities.
PR